Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

arreter l'execution d'une macro

B

bjh

Guest
bonjour le forum
j'aimerai savoir s'il existe une procédure affectée à un bouton dans une USF qui permet d'arreter une macro en cours d'exécution
merci @ tous
bjh
 
Y

Yeahou

Guest
Bonjour Bjh, Temjeh, le forum

Utilisation de la touche escape, mais avec une gestion d'erreur ce qui permet de controler le processus.

Cordialement, A+

Sub test()
Dim Demande_Erreur As Integer
Dim Compteur As Long, Compteur2 As Long
'redirige la touche echap sur une erreur utilisateur
'Application.EnableCancelKey = xlErrorHandler
'sur erreur envoie la routine
On Error GoTo Gere_Erreurs
'boucle d'attente
For Compteur = 1 To 100000000
Compteur2 = Compteur
Next Compteur
MsgBox "Boucle exécutée, compteur2 vaut " & Compteur2
Exit Sub
Gere_Erreurs:
If Err = 18 Then Demande_Erreur = MsgBox("Touche escape interceptée !", vbRetryCancel, Title:="Sortie volontaire") Else Demande_Erreur = MsgBox("Erreur numéro " & Err & " interceptée !" & Chr$(10) & "Type d'erreur : " & Error(Err), vbRetryCancel, Title:="Erreur détectée !")
If Demande_Erreur = 4 Then
Resume
Else
If Err = 18 Then
MsgBox "Vous avez arrété compteur2 à " & Compteur2
Else
'traitement des erreurs autres que la touche escape
End If
End If
End Sub
 
Y

Yeahou

Guest
Rebonjour

j'avais laissé un ' mal placé

A+

Sub test()
Dim Demande_Erreur As Integer
Dim Compteur As Long, Compteur2 As Long
'redirige la touche echap sur une erreur utilisateur
Application.EnableCancelKey = xlErrorHandler
'sur erreur envoie la routine
On Error GoTo Gere_Erreurs
'boucle d'attente
For Compteur = 1 To 100000000
Compteur2 = Compteur
Next Compteur
MsgBox "Boucle exécutée, compteur2 vaut " & Compteur2
Exit Sub
Gere_Erreurs:
If Err = 18 Then Demande_Erreur = MsgBox("Touche escape interceptée !", vbRetryCancel, Title:="Sortie volontaire") Else Demande_Erreur = MsgBox("Erreur numéro " & Err & " interceptée !" & Chr$(10) & "Type d'erreur : " & Error(Err), vbRetryCancel, Title:="Erreur détectée !")
If Demande_Erreur = 4 Then
Resume
Else
If Err = 18 Then
MsgBox "Vous avez arrété compteur2 à " & Compteur2
Else
'traitement des erreurs autres que la touche escape
End If
End If
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…