VBA sous excel

  • Initiateur de la discussion Philippe LARUE
  • Date de début
P

Philippe LARUE

Guest
bonjour à toutes et à tous,

ma config est

Windows XP pro / excel 2002

j'ai programmé une boucle infinie DO/LOOP et je voudrais en sortir lors d'un évènement clavier (touche Escape par exemple) uniquement

j'ai essayé avec le code suivant:

Application.Onkey "{Esc}", "ProcedureAppelée"


mais ça ne fonctionne pas

il y a certainement quelque chose que je ne comprends pas... mais quel est le problème ?

merci de votre aide

phl
 
T

Ti

Guest
il y a plus simple, tu utilises la propriété EnableCancelKey comme ceci, et en plus tu peux gérer les erreurs et même reprendre la boucle si tu le désires :

Sub Interruption()
Dim Reponse, Bcle%
On Error GoTo fin
Application.EnableCancelKey = xlErrorHandler
Do
'pour passer le temps...
Bcle = IIf(Bcle = 0, 1, 0)
Loop
Exit Sub
fin:
If Err = 18 Then
Reponse = MsgBox("Annuler la procédure ?", vbYesNo, "BcleTi")
If Reponse = vbNo Then Resume
ElseIf Err <> 0 Then
MsgBox "Erreur durant le traitement", vbExclamation, "BcleTi"
End If
End Sub
 
P

Philippe LARUE

Guest
Bonjour,

C'est à nouveau moi

La procédure que tu m'as envoyée hier fonctionne parfaitement et je t'en remercie à nouveau

Il y a juste un petit problème que je soumets à ta sagacité:

Quand j'appuie brièvement sur le bouton ESCAPE, cela n'interrompt pas la procédure ! Mais au contraire ça l'accélère ! Il faut que j'appuie longuement sur Escape pour que l'interruption se fasse correctement !

Comment palier à ce petit inconvénient ?

Merci de ton aide

philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 474
Messages
2 088 723
Membres
103 935
dernier inscrit
GGV