Boucle tant qu'une touche n'est enfoncée ou relâchée [Résolu]

Signaler
Messages postés
8
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
25 mars 2011
-
Messages postés
8
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
25 mars 2011
-
Bonjour,

je suis débutant et j'ai encore du mal avec les évènements
Je souhaite faire une boucle tant qu'une touche n'est enfoncée ou relâchée

du type:
MsgBox "Veuillez Appuyer sur Ctrl"
Do
    blabla
Loop While la  touche Ctrl n'est enfoncée

MsgBox "Veuillez Relâcher sur Ctrl"
Do
    blabla
Loop While la  touche Ctrl n'est relâchée


J'ai peut être mal cherché (sans doute pas le bon vocabulaire) mais je n'est rien trouvé à ce sujet

Merci d'avance pour votre aide

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Private Function IsCtrlKeyPressed() As Boolean
    IsCtrlKeyPressed = GetAsyncKeyState(vbKeyControl) And &H8000
End Function

Private Sub Form_Click()
    Me.Caption = "Veuillez Appuyer sur Ctrl"
    Do
        DoEvents
    Loop Until IsCtrlKeyPressed

    Me.Caption = "Veuillez Relâcher sur Ctrl"
    Do
        DoEvents
    Loop While IsCtrlKeyPressed
    
    Me.Caption = "Merci d'avoir joué à ""Tu pousses le bouton""."
End Sub


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Evenements :
KeyDown et KeyUp
Avec un Timer, je pense que tu auras tout.

Mon site
Messages postés
8
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
25 mars 2011

Merci Renfield

c'est exactement ce que je cherchais

Juste pour les débutant comme moi je précise que "Sub Form_Click()" peut être modifier par l’évènement voulu

"Private Sub TextBox1_Change()" par exemple ou autres