Breaker un Run en cliquant sur annuler

  • Initiateur de la discussion Seb
  • Date de début
S

Seb

Guest
Rebijour,
QQun saurait il quel code est necessaire pour stopper un Run en cliquant sur Annuler sur un Userform quand on a lancé un Run par mégarde...
Remerki d'avance
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Seb, cher José, le Forum

L'instruction par le Statement End, préconisée parfaitement par mon ami José, est la réponse à ta question. Ceci terminera toute exécution immédiatement...(UserForms y compris également)

José dans un souci de parfait fonctionnement te préconise très justement d'y adjoindre la Function DoEvents afin de rendre la main au système pour vérifier qu'un autre 'Event' n'est pas déclenché pendant le 'RunTime' de ton code... (Boucle ou autre)...

Maintenant ta réponse avec CTRL + ALT = SUPRR, oui c'est clair ! Le disjoncteur aussi !!! ;)

Non !!! Dans ce cas pour stopper une macro lancée inopinément, il y a mieux alors que ça ... la Touche 'Escape' (Echap) ou plus radical : CTLR + PAUSE/ATTN

Bon Aprèm
[ol]@+Thierry[/ol]
 
S

seb

Guest
control pause, c'est genial!
c'est ce que je cherchais, pas moyen de coder ca en vba pour que quand je clique sur annuler, ca me fasse control pause et m'affiche la feuille 1?
merci davance
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Seb, José, Thierry, bonjour le forum,

pfff !!! C'est fou ce qu'on apprend ici. Dire que moi je téléphonais à mon beau-frère qui travaille à EDF pour lui demander gentiment de couper le réseau de mon quartier...


Message édité par: Robert, à: 09/03/2006 16:52
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Seb, José, Salut à Robert Karma Killer !

Le saut d'eau dans la grille de ventillation du PC, ça le fait aussi pas mal Robert ! (Ou bien il y a aussi le verre de scotch comme Kurt Russell dans 'The Thing' de John Carpenter, la Duvel est déconseillée pour cause de mousse trop abondante) ;)

Non plus sérieusement Seb, si tu veux vraiment stopper une macro par une macro commandée par un Bouton, la seule solution est bien celle proposée par José.

Exemple à mettre dans un Classeur Vierge contenant un UserForm avec deux CommandButtons :

Option Explicit

Private Sub CommandButton1_Click()
Dim i As Long

For i = 1 To 30000
    Cells(i, 1) = Now
    DoEvents
Next

End Sub

Private Sub CommandButton2_Click()
   
End
End Sub

Bonne fin de journée
[ol]@+Thierry[/ol]
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Seb, jmps, _Thierry, Robert,

Si on veut éviter une sortie par un End (un peu radical), on peut aussi utiliser la propriété EnableCancelKey de l'objet Application et autoriser une sortie propre grâce à la touche Echap :
Sub Traitement()
Dim C As Range

      On Error GoTo Halte_La
      Application.EnableCancelKey = xlErrorHandler
      For Each C In ActiveSheet.Cells
            C.Value = 'X'
      Next C
Exit Sub

Halte_La:
      If Err = 18 Then
            If MsgBox('Je suis en attente...' & vbLf & 'Dois-je continuer ?', _
                  vbYesNo) = vbYes Then Resume
      End If
End Sub
Cordialement,
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

:) :)

sinon, vous avez essayer la masse de 10 kg ???

didier, petite question.

A quoi sert xlErrorHandler ?

ceci permet de déclencher une erreur lors de l'appui su echap, puis de gérer cette erreur par la balise Halte_là, c'est ca ?

j'ai rien dans l'aide.

salut
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Hervé, le Forum,

Oui Hervé, c'est tout à fait ça.

Le principe consiste à générer une erreur que l'on peut facilement intercepter et traiter par un simple gestionnaire d'erreur. Le code d'erreur à surveiller étant le 18.

Normalement, tu devrais trouver tout ça dans l'aide VBA sur la propriété EnableCancelKey de l'objet Application...

Cordialement,
 

Discussions similaires