OVH Cloud OVH Cloud

bouton et macro

2 réponses
Avatar
Proust Michel
bonjour
soit un bouton B
clic sur B lance la macro M
dans M je voudrais savoir si le clic sur B = clic ou Ctrl+clic ou Atl+clic
...
est-ce possible si oui comment ?
merci d'avance

2 réponses

Avatar
Xavier POWAGA
dans la macro de ton bouton tu rajoutes testTouche

Dans un nouveau Module tu mets:

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer

Const VK_SHIFT = &H10
Const VK_CONTROL = &H11
Const VK_MENU = &H12
Const KEYISDOWN = &HF0000000

Sub testTouche()

Const KB_ALT = 1
Const KB_CONTROL = 2
Const KB_SHIFT = 4
Dim intKeyPressed As Integer

If (GetKeyState(VK_SHIFT) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_SHIFT
End If '
If (GetKeyState(VK_CONTROL) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_CONTROL
End If

If (GetKeyState(VK_MENU) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_ALT
End If
Select Case intKeyPressed
Case KB_ALT
'ALT key code here
MsgBox "Alt enfoncée"
Case KB_CONTROL
'CTRL key code here
MsgBox "CTRL enfoncée"
Case KB_SHIFT
'SHIFT key code here
MsgBox "SHIFT enfoncée"

End Select

End Sub

et voilà

A+
Xavier P


"Proust Michel" a écrit dans le message de news:

bonjour
soit un bouton B
clic sur B lance la macro M
dans M je voudrais savoir si le clic sur B = clic ou Ctrl+clic ou Atl+clic
...
est-ce possible si oui comment ?
merci d'avance



Avatar
Proust Michel
Je vais essayer dans la semaine et t'informe du résultat Merci pour les
infos
"Xavier POWAGA" a écrit dans le message de news:
45d9fe6b$0$29761$
dans la macro de ton bouton tu rajoutes testTouche

Dans un nouveau Module tu mets:

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer

Const VK_SHIFT = &H10
Const VK_CONTROL = &H11
Const VK_MENU = &H12
Const KEYISDOWN = &HF0000000

Sub testTouche()

Const KB_ALT = 1
Const KB_CONTROL = 2
Const KB_SHIFT = 4
Dim intKeyPressed As Integer

If (GetKeyState(VK_SHIFT) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_SHIFT
End If '
If (GetKeyState(VK_CONTROL) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_CONTROL
End If

If (GetKeyState(VK_MENU) And KEYISDOWN) = KEYISDOWN Then
intKeyPressed = intKeyPressed + KB_ALT
End If
Select Case intKeyPressed
Case KB_ALT
'ALT key code here
MsgBox "Alt enfoncée"
Case KB_CONTROL
'CTRL key code here
MsgBox "CTRL enfoncée"
Case KB_SHIFT
'SHIFT key code here
MsgBox "SHIFT enfoncée"

End Select

End Sub

et voilà

A+
Xavier P


"Proust Michel" a écrit dans le message de news:

bonjour
soit un bouton B
clic sur B lance la macro M
dans M je voudrais savoir si le clic sur B = clic ou Ctrl+clic ou
Atl+clic ...
est-ce possible si oui comment ?
merci d'avance