VBA est en mesure d’exécuter une procédure lorsque l’utilisateur appuie sur une touche ou une combinaison de touches. Pour cela, vous utiliserez la procédure Application.OnKey :
Application.OnKey "touche", "proc"
Où touche est la touche ou la combinaison de touches qui déclenche l’exécution de la procédure proc.
Le tableau ci-après donne un aperçu de la syntaxe à utiliser.
Touche | Code de la touche |
Majuscule | + |
Contrôle | ^ |
Alt | % |
Suppr | {DELETE} |
Retour Arrière | {BACKSPACE} |
Verr Num | {NUMLOCK} |
Verr Maj | {CAPSLOCK} |
Arrêt Defil | {SCROLLLOCK} |
Page Suivante | {PGDN} |
Page précédente | {PGUP} |
Haut | {UP} |
Bas | {DOWN} |
Gauche | {LEFT} |
Droite | {RIGHT} |
Origine | {HOME} |
Fin | {END} |
F1 à F12 | {F1} à {F12} |
Entrée | {ENTER} |
Echap | {ESC} |
Insertion | {INSERT} |
Impr écran | {PRTSC} |
Tabulation | {TAB} |
Vous appellerez la méthode Application.OnKey dans la procédure Workbook_Open().
Ouvrez la fenêtre Microsoft Visual Basic pour Applications du classeur concerné. Double-cliquez sur ThisWorkbook dans la fenêtre Projet (1) et sélectionnez Workbook dans la liste déroulante Objet (2). La procédure Workbook_Open() est automatiquement créée. Il ne vous reste plus qu’à la compléter (3). Ici par exemple, la procédure raccourci() est exécutée lorsque l’utilisateur appuie sur Contrôle + Alt + j :
Voici le code utilisé :
Private Sub Workbook_Open() Application.OnKey "^%j", "raccourci" End Sub
Il ne reste plus qu’à définir la procédure raccourci(). Sous Module, double-cliquez sur Module1 et définissez la procédure raccourci() :
Sub raccourci() MsgBox "Vous avez appuyé sur Contrôle + Alt + J" End Sub
Chaque fois que l’utilisateur appuie simultanément sur les touches Contrôle, Alt et j, une boîte de dialogue s’affiche :
Cette commande ne fonctionne pas avec Excel 2016