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

VBA Word Discussion :

VBA raccourcis clavier pour lancement macro


Sujet :

VBA Word

  1. #1
    Candidat au Club
    VBA raccourcis clavier pour lancement macro
    Bonjour à tous ,
    Je me bats depuis plusieurs jours, mais sans succès, pour comprendre l’utilisation de KeyBinding…
    Voici mon code que j’utilise dans la procédure de ThisDocument de Normal.dot afin de la rendre disponible à l’ouverture de tous les documents.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Document_Open()
    With Application
        .CustomizationContext = ThisDocument
        .KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyAlt, wdKeyS), _
            KeyCategory:=wdKeyCategoryCommand, _
            Command:="MaProcedure"
    End With
    End Sub

    Malheureusement, j’ai beau essayer les différentes combinaisons de touche, (Alt+s, Alt+Maj+s, Ctrl+Alt+s, Ctrl+Alt+Maj+s…), la macro ne se lance pas…
    J’avoue que je développe surtout sous Excel et que le VBA de Word est un peu plus rébarbatif, mais ça ne m’explique pas le pourquoi…
    Merci d’avance de vos réponses et bonne journée .
    PS : Après recherche sur le forum, il y a bien un post qui en parle, mais la seule réponse est : « J’ai trouvé ma solution avec KeyBinding », ce qui ne m’avance pas beaucoup.

  2. #2
    Rédacteur/Modérateur

    Salut,

    Essaie de mettre le chemin complet dans ton string command

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Normal.NewMacros.MaMacro

    Document.Module.Procédure
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Bonjour Heureux-Oli ,
    Merci de ta réponse rapide.
    J'ai mis le chemin complet, et au lancement, la macro plante avec un message : Erreur de compilation Fonction ou variable attendue
    Pourtant, la saisie automatique me propose directement le nom de ma procédure...
    Comme il me demandait une fonction, j'ai changé ma Sub en Function, mais là, il me lance la procédure à l'ouverture... Et après l'avoir exécuté, il me mets une erreur 4120 paramètre incorrect et me sélectionne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
        .KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyAlt, wdKeyS), _
            KeyCategory:=wdKeyCategoryCommand, _
            Command:=Normal.MonModule.MaMacro
    J'avoue que j'y perds un peu mon latin...

  4. #4
    Rédacteur/Modérateur

    Salut,

    Dans le premier message tu utilises :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Command:="MaProcedure"

    Ou l'argument passé est un string.
    Dans le dernier, tu utilises :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Command:=Normal.MonModule.MaMacro


    Où sont passés les " ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Candidat au Club
    Re bonjour,
    Quand je mets entre crochet, le compilateur me mets : Erreur de compilation Attendu : identificateur ou expression entre crochet. Par contre, quand je mets le point derrière Normal.MonModule, il me propose MaMacro en saisie automatique sans les ".
    Voilà.
    Rajout: Effectivement, je n'avais pas testé les " autour de l'expression "Normal.MonModule.MaMacro", et ça fonctionne!!!
    Merci beaucoup (je suis surpris, je ne pensais pas que l'on pouvait mettre des expressions entre "".

###raw>template_hook.ano_emploi###