Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Lire une touche du clavier en VBA

421 views
Skip to first unread message

Bernard Mathon

unread,
Mar 7, 2000, 3:00:00 AM3/7/00
to
Bonjour à tous,

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

Eric Jeanne

unread,
Mar 8, 2000, 3:00:00 AM3/8/00
to
Bernard,

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...

Bernard Mathon

unread,
Mar 8, 2000, 3:00:00 AM3/8/00
to
Mille merci, je vais suivre cette piste avec application
Bernard
.
Eric Jeanne a écrit dans le message ...
0 new messages