IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Syntaxe pour intégrer "ctrl+C" dans du code vba. [Toutes versions]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Points : 100
    Points
    100
    Par défaut Syntaxe pour intégrer "ctrl+C" dans du code vba.
    Bonjour,
    Je voudrais intégrer dans un morceau de code une ligne qui fasse l'action "ctrl+c" c'est à dire qui fasse comme si on appuyait sur les touches du clavier "contrôle+c" en même temps. Je ne connais pas la syntaxe pour faire cela. Est-ce possible ?

    Voici le code et l'endroit où je veux insérer cette fonction (en majuscule) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Set cmb = Application.CommandBars.Add("Mnu_CopierCollerAnnuler", msoBarPopup)
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "copier"
            .Style = msoButtonCaption
            .OnAction = "FONCTION CTRL+C"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "coller"
            .Style = msoButtonCaption
            .OnAction = "FONCTION CTRL+V"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "annuler"
            .Style = msoButtonCaption
            .OnAction = "FONCTION CTRL+Z"
        End With
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu veux recréer les effets des boutons Copier, Coller et Annuler pourquoi ne pas reprendre les Id des boutons de commandes existant ?

    Sur ce tuto Personnaliser vos barres de commandes dans Access tu as un exemple d'utilisation de ce qui se trouve dans la barre de commande : Utiliser les fonctions des barres de commandes

    Philippe

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Points : 100
    Points
    100
    Par défaut
    C'est justement ce que j'ai fait mais cela utilise des macros pour effectuer les copier coller annuler et quand j'ai des erreurs à cause de ces macro l'application plante et ferme. Voilà pourquoi je voudrais savoir la syntaxe que je dois utiliser pour ctrl+C. Je trouve ça plus simple. N'y a-t-il pas de syntaxe possible ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je ne comprends pas vraiment ton problème avec le peu d'informations que tu nous donnes sur le bug.

    Sinon une autre solution : Access : les commandes intégrées des menus et surtout ici : Menu Édition

    Philippe

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Points : 100
    Points
    100
    Par défaut
    Ok. Je suis entrain de regarder les derniers liens que vous m'avez donné car je pense pouvoir m'en sortir avec.

    Je vous explique plus clairement mon problème. Voici le code exact tel qu'il est en ce moment dans mon application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Set cmb = Application.CommandBars.Add("Mnu_CopierCollerAnnuler", msoBarPopup)
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "copier"
            .Style = msoButtonCaption
            .OnAction = "Macro_Copier"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "coller"
            .Style = msoButtonCaption
            .OnAction = "Macro_Coller"
        End With
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "annuler"
            .Style = msoButtonCaption
            .OnAction = "Macro_Annuler"
        End With
    Vous pouvez voir que j'utilise 3 macros différentes. Si par exemple dans un formulaire je fait clique droit coller alors que je n'ai rien à coller, la "Macro_Coller" donne lieu à une erreur et l'application plante et se ferme. Voilà pourquoi je cherchais une autre solution pour pouvoir remplacer l'usage de macro dans ce bout de code. J'espère vous avoir éclairé sur le problème.

    Je posterais un autre message dès que j'aurais réussit ou non à m'en sortir grâce à votre seconde solution.

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Voici un code de création d'un menu contextuel qui réutilise des contrôles de barre d'outils intégrés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Dim cmdBar As Object   ' Office.CommandBar si ref Office cochée
    Dim strMenu As String
    Const msoBarPopup = 5  ' Au cas où ref Office n'est pas cochée
     
    strMenu = "Mnu_CopierCollerAnnuler"
    On Error Resume Next
    Set cmdBar = Application.CommandBars(strMenu)
    On Error GoTo 0
     
    If Not (cmdBar Is Nothing) Then
       cmdBar.Delete
    End If
     
    Set cmdBar = Application.CommandBars.Add(strMenu, msoBarPopup, False, False)
    ' Copier
    Application.CommandBars("Database").FindControl(, 19).Copy cmdBar
    ' Coller
    Application.CommandBars("Database").FindControl(, 22).Copy cmdBar
    ' Annuler -> Bouton
    Application.CommandBars("Edit").FindControl(, 128).Copy cmdBar
     
    ' Annuler -> Split button
    'Application.CommandBars("Database").FindControl(, 128).Copy cmdBar
     
    cmdBar.Enabled = True
    A+

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 272
    Points : 100
    Points
    100
    Par défaut
    Ok c'est parfait cela fonctionne très bien.

    Merci à vous deux pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2010] VBA pour intégrer les dates de réceptions dans les objets ?
    Par Megajav dans le forum Outlook
    Réponses: 4
    Dernier message: 01/07/2015, 10h50
  2. Réponses: 2
    Dernier message: 14/09/2010, 16h39
  3. Réponses: 2
    Dernier message: 27/07/2007, 16h09
  4. EDI pour intégrer efficacement de l'assembleur dans du C/C++
    Par Selenite dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 04/04/2004, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo