Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter si la touche majuscule est pressée

1 réponse
Avatar
mbalz
Bonjour,
J'aimerais savoir s'il est possible, durant un =E9v=E9nement (un clic sur
un bouton par ex.), de d=E9tecter si la touche majuscule est press=E9e.
En langage vba of course.
Si vous savez, merci.

1 réponse

Avatar
papou
Bonjour
C'est possible en définissant une procédure à exécuter lorsque cette touche
est appuyée.
En intégrant donc la ligne suivante dans une procédure Auto_Open ou un
évènement Workbook_Open :
Application.OnKey "{CAPSLOCK}", "Macro"

Puis en définissant une autre procédure qui s'exécute à l'occasion de
l'appui sur la touche majuscule :

Sub Macro()
MsgBox "Touche majuscule enfoncée"
End Sub

Sinon, il existe aussi une API qui peut renvoyer l'état de la touche
(enfoncée ou pas) :
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Sachant que la valeur de la touche est &H14, tu peux utiliser un code comme
ceci :

Const ToucheMaj = &H14
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Sub test()
If GetKeyState(ToucheMaj) = 1 Then
MsgBox "Touche majuscule actuellement allumée"
Else: MsgBox "la touche majuscule n'est pas allumée"
End If
End Sub

Cordialement
Pascal


a écrit dans le message de news:

Bonjour,
J'aimerais savoir s'il est possible, durant un événement (un clic sur
un bouton par ex.), de détecter si la touche majuscule est pressée.
En langage vba of course.
Si vous savez, merci.