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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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
<mbalz@freesurf.fr> a écrit dans le message de news:
1158158845.322481.250000@d34g2000cwd.googlegroups.com...
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.
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.