le mieux , c'est de mettre la propriete 'KeyPreview' de ta form a true. De sorte que toutes les touches que tu va presser seront portées a son attention, independemment du controle qui a le focus. Ensuite , lors de l'eventement KeyPress de ta form , tu teste si la touche presée ea la valeur vbkeyescape (27), et si c'est elle, tu met une variable globale a Vrai.
il ne te reste plus qu'au mettre cette valeur drapeau a Faux au debut d'une boucle, d'effectuer ta boucle ( en n'oubliant pas d'y inserer un Dovevents, si celle-ci est longue... ) et de faire finir la boucle si la variable globale definie est a vraie , preuve que la touche echap a bien ete pressee.
esperant avoir ete clair.
dans le doute , cree une fenetre , avec ce que tu veux dedans, et met ce code :
Dim ArretesToi As Boolean
Private Sub Form_Click()
Me.Caption = 0
ArretesToi = False 'on initialise le Flag
While Not ArretesToi
DoEvents ' pour ne pas que l'appli se bloque
Me.Caption = Me.Caption + 1 'on fait une action
Wend
Me.Caption = "Boucle Stoppée , Cliquez sur la fenetre....."
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii vbKeyEscape Then ArretesToi True
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
Me.Caption = "Cliquez sur la fenetre....."
End Sub
-----------------------------------------------------------------------
By Renfield
thomas_reynald@msn.com
Aucune touche n'a été bléssée lors de la saisie de ce texte..........