Bonjour à tous,
Ma Situation :
Je dipose de plusieurs UserForm remplis de différents boutons de commandes déclenchants différentes procédures.
Mon souhait :
Je voudrais déclencher les procédures associées à ses boutons en appuyant simplement sur une touche (un raccourcis clavier sans combinaison).
Mes recherches :
Je me suis tourné vers les évenements KeyPress, KeyDown ou encore Onkey et je pense que ces trois solutions se valent et peuvent répondre à mon besoin mais voila.....
Pour que ces évenements soit interceptés, il faut que le focus soit sur le UserForm (et pas sur un controle disposé dans celle-ci).
Or des que le UserForm contient un ou plusieurs contrôles, à son ouverture, le focus et donné directement au controle ayant la valeur 0 dans sa propriété TabIndex. De ce fait les raccouris claviers ne sont plus interceptés.
Je Pourrais mettre à False la propriété TabStop mais je perdrais tous les avantages de la navigation classique par le clavier.
Ma question :
Sachant que chaque UserForm disposera des mêmes raccourcis mais déclenchants des actions différentes et que ces raccourcis devront être accessibles quelque soit la position du focus dans le UserForm activé, Comment puis-je coder de tels raccourcis ?
Une piste :
J'ai lu un bout de réponse sur le forum, concernant l'utilisation d'un Hook, mais je ne connais pas cette technique et cela me chagrine de me dire que quelque chose d'aussi courant dans les applications, ne soit pas possible sous VBA (je pense en effet que l'astuce existe sous VBA mais que j'ai un manque de connaissance notable dans ce langage)
Dans tous les cas, toute sugestion sera appréciée à sa juste valeur et je vous remmercie par avance du temps que vous pourrez prendre pour m'aider.
@+
Partager