J'aimerais savoir si c'est possible:
J'ai une macro =E9v=E8nementielle "toto" qui se lance =E0=20
l'ouverture d'un userform (il est mis =E0 jour au fur et =E0=20
mesure de l'avancement de la macro).
En gros dans "toto", il y a une boucle qui peut selon les=20
cas tourner tr=E8s tr=E8s longtemps!
J'aimerais savoir si on pouvait mettre sur le formulaire=20
un bouton "Arr=EAter" qui termine l'execution de la=20
macro "toto".
En fait l'effet doit =EAtre le m=EAme que Ctrl+Attn puis click=20
sur "fin".
P.S.: pour le bouton j'ai pas de probl=E8me mais c'est pour=20
le code associ=E9! J'ai d=E9j=E0 cherch=E9 dans l'aide sans succ=E8s.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Phil,
Dans le haut de ton formulaire, déclare une variable
Dim Ok as Boolean
Dans ta procédure qui est longue à exécuter, place en début de procédure : Ok = False
Et à des endroits stratégiques de ton code (qui requiert un temps d'exécution longuet comme une boucle), les 2 lignes de code suivantes : à titre d'exemple : '------------------ For a= 1 to X DoEvents if ok = true then Exit sub
' Le reste du code de ta boucle
Next '------------------
Attache cette macro à un bouton de ton formulaire 'Cette macro doit être dans le module de ton formulaire
Lorsque tu cliqueras sur le bouton , tu feras arrêter ta procédure en exécution. '------------------ Sub ArrêtMacro() Ok= True End Sub '------------------
Salutations!
"Phil" a écrit dans le message de news:09e501c3c630$bf034be0$ Bonjour à tous,
J'aimerais savoir si c'est possible: J'ai une macro évènementielle "toto" qui se lance à l'ouverture d'un userform (il est mis à jour au fur et à mesure de l'avancement de la macro). En gros dans "toto", il y a une boucle qui peut selon les cas tourner très très longtemps! J'aimerais savoir si on pouvait mettre sur le formulaire un bouton "Arrêter" qui termine l'execution de la macro "toto". En fait l'effet doit être le même que Ctrl+Attn puis click sur "fin". P.S.: pour le bouton j'ai pas de problème mais c'est pour le code associé! J'ai déjà cherché dans l'aide sans succès.
Merci d'avance pour une éventuelle piste...
Bonjour Phil,
Dans le haut de ton formulaire, déclare une variable
Dim Ok as Boolean
Dans ta procédure qui est longue à exécuter, place en début de procédure :
Ok = False
Et à des endroits stratégiques de ton code (qui requiert un temps d'exécution longuet comme une boucle), les 2 lignes de code
suivantes : à titre d'exemple :
'------------------
For a= 1 to X
DoEvents
if ok = true then Exit sub
' Le reste du code de ta boucle
Next
'------------------
Attache cette macro à un bouton de ton formulaire
'Cette macro doit être dans le module de ton formulaire
Lorsque tu cliqueras sur le bouton , tu feras arrêter ta procédure en exécution.
'------------------
Sub ArrêtMacro()
Ok= True
End Sub
'------------------
Salutations!
"Phil" <PhilippeB@discussions.microsoft.com> a écrit dans le message de news:09e501c3c630$bf034be0$a401280a@phx.gbl...
Bonjour à tous,
J'aimerais savoir si c'est possible:
J'ai une macro évènementielle "toto" qui se lance à
l'ouverture d'un userform (il est mis à jour au fur et à
mesure de l'avancement de la macro).
En gros dans "toto", il y a une boucle qui peut selon les
cas tourner très très longtemps!
J'aimerais savoir si on pouvait mettre sur le formulaire
un bouton "Arrêter" qui termine l'execution de la
macro "toto".
En fait l'effet doit être le même que Ctrl+Attn puis click
sur "fin".
P.S.: pour le bouton j'ai pas de problème mais c'est pour
le code associé! J'ai déjà cherché dans l'aide sans succès.
Dans le haut de ton formulaire, déclare une variable
Dim Ok as Boolean
Dans ta procédure qui est longue à exécuter, place en début de procédure : Ok = False
Et à des endroits stratégiques de ton code (qui requiert un temps d'exécution longuet comme une boucle), les 2 lignes de code suivantes : à titre d'exemple : '------------------ For a= 1 to X DoEvents if ok = true then Exit sub
' Le reste du code de ta boucle
Next '------------------
Attache cette macro à un bouton de ton formulaire 'Cette macro doit être dans le module de ton formulaire
Lorsque tu cliqueras sur le bouton , tu feras arrêter ta procédure en exécution. '------------------ Sub ArrêtMacro() Ok= True End Sub '------------------
Salutations!
"Phil" a écrit dans le message de news:09e501c3c630$bf034be0$ Bonjour à tous,
J'aimerais savoir si c'est possible: J'ai une macro évènementielle "toto" qui se lance à l'ouverture d'un userform (il est mis à jour au fur et à mesure de l'avancement de la macro). En gros dans "toto", il y a une boucle qui peut selon les cas tourner très très longtemps! J'aimerais savoir si on pouvait mettre sur le formulaire un bouton "Arrêter" qui termine l'execution de la macro "toto". En fait l'effet doit être le même que Ctrl+Attn puis click sur "fin". P.S.: pour le bouton j'ai pas de problème mais c'est pour le code associé! J'ai déjà cherché dans l'aide sans succès.