Je sais utiliser les évenement KeyPress et autres dans un Userform, mais je
voudrais tester dans une procédure VBA si la touche Maj (vbKeyShift ) est
appuyée.
Si vous avez un tuyau...
Bernard Mathon
Je crois que dans certains cas particuliers (mouse_move), il existe un
argument Shift qui permet de savoir si SHIFT CTRL ou ALT est appuyé. Sinon,
dans les sortilèges de Lolo.jpg, j'utilise pour ma part la solution suivante
:
Declare Function GetAsyncKeyState Lib "User32" _
(ByVal vKey As Long) As Integer
Puis dans le module VBA, je mémorise une fois pour toute la valeur adéquate
de GetAsyncKeyState pour pouvoir la retraiter si nécessaire dans le cours de
la procédure :
refShift = GetAsyncKeyState(&H10)
Je crois d'ailleurs qu'on peut mettre la référence en décimal plutôt qu'en
hexa.
Si Shift n'est pas enfoncé la valeur est 0, et -32767 si enfoncé. Donc il
suffit de tester si refShift est négatif.
Process similaire avec CTRL (&H11) pour lequel on devrait avoir 1 et -32768
et ALT (&H12) dans le même genre.
Cordialement.
Bernard Mathon <Bernard...@wanadoo.fr> a écrit dans le message :
8a3rb3$deb$1...@wanadoo.fr...