1 pièce(s) jointe(s)
Comment intercepter les touches "Shift", "Ctrl" ou "Alt" dans un Sub?
J'ai trouvé ce bout de code sur Internet mais j'obtiens un message d'erreur à l'exécution.
Dans un module:
Code:
1 2 3 4 5 6 7 8
| #If Win64 Then
Public Declare PtrSafe Function GetAsyncKeystate Lib "user32" _
(ByVal vKey As Long) As Integer
#Else
Public Declare Function GetAsyncKeystate Lib "user32" _
(ByVal vKey As Long) As Integer
#End If |
Puis, dans un module de classe:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub SpnClt_SpinDown()
Dim LaValeur As Single
Dim Pas As Single
LaValeur = Format(Épurer(TablListÉcrit(Index).TxtCtl.Value, Décimale), "#0.00") 'Fonction maison
If GetAsyncKeystate(&H10) Then 'Shift
Pas = -0.1
ElseIf GetAsyncKeystate(&H11) Then 'Ctrl
Pas = -1
ElseIf GetAsyncKeystate(&H12) Then 'Alt
Pas = -10
Else
Pas = -0.01
End If
If LaValeur > 0 Then LaValeur = LaValeur - Pas
If LaValeur < 0.01 Then LaValeur = 0
TablListÉcrit(Index).TxtCtl.Value = Format(LaValeur, "#0.00")
End Sub |
Le message d'erreur:
Pièce jointe 594533
Que se passe-t-il? Merci de votre aide.
Intercepter les touche "Ctrl", "Shift" et "Alt"
Merci. Ça fonctionne très bien.