bonjour,
voici ma petite question d'aujourd'hui :p
A l'aide de toute une collection de macros, j'effectue un transfert
progressif de donn=E9es d'un classeur excel =E0 l'autre (assist=E9 par
l'utilisateur).
(il faut comprendre : un proc=E9dure principale qui dans un for each
wrksht appelle une sous-proc=E9dure a la fin de laquelle sont appel=E9es
plusieurs proc=E9dures. bref)
J'envisage d'afficher un userform modeless avec un bouton qui
permettrait =E0 l'utilisateur d'arreter le transfert (arret +
r=E9initaliser le code) si il voit que ca se passe mal.
Je sais que manuellement on peut interrompre l'execution par echap,
mais je n'ai aps r=E9ussi =E0 coder =E7a sous vba, est-il possible en plus
de "r=E9initaliser" le code (que le pgmme ne reste pas en mode arret, et
ne m'affiche pas la fenetre de d=E9bogage)
(dans l'=E9ventualit=E9 o=F9 ce n'est pas d=E9conseill=E9 d'appliquer de
telles m=E9thodes)
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
papou
Bonjour Voici ce que tu pourrais faire :
On Error GoTo MaProcArret Application.EnableCancelKey = xlErrorHandler 'ton code ici
Exit Sub
MaProcArret: MsgBox "la macro a été interrompue" & vbLf & "j'arrête tout !", vbInformation, "Touche echap" 'l'instruction End termine immédiatement l'execution End
End Sub
Cordialement Pascal
"Céline" a écrit dans le message de news:
bonjour, voici ma petite question d'aujourd'hui :p A l'aide de toute une collection de macros, j'effectue un transfert progressif de données d'un classeur excel à l'autre (assisté par l'utilisateur). (il faut comprendre : un procédure principale qui dans un for each wrksht appelle une sous-procédure a la fin de laquelle sont appelées plusieurs procédures. bref) J'envisage d'afficher un userform modeless avec un bouton qui permettrait à l'utilisateur d'arreter le transfert (arret + réinitaliser le code) si il voit que ca se passe mal. Je sais que manuellement on peut interrompre l'execution par echap, mais je n'ai aps réussi à coder ça sous vba, est-il possible en plus de "réinitaliser" le code (que le pgmme ne reste pas en mode arret, et ne m'affiche pas la fenetre de débogage) (dans l'éventualité où ce n'est pas déconseillé d'appliquer de telles méthodes)
Merci beaucoup de vos conseils Céline
Bonjour
Voici ce que tu pourrais faire :
On Error GoTo MaProcArret
Application.EnableCancelKey = xlErrorHandler
'ton code ici
Exit Sub
MaProcArret:
MsgBox "la macro a été interrompue" & vbLf & "j'arrête tout !",
vbInformation, "Touche echap"
'l'instruction End termine immédiatement l'execution
End
End Sub
Cordialement
Pascal
"Céline" <celine.michel1@gmail.com> a écrit dans le message de news:
1158053234.796748.310490@m73g2000cwd.googlegroups.com...
bonjour,
voici ma petite question d'aujourd'hui :p
A l'aide de toute une collection de macros, j'effectue un transfert
progressif de données d'un classeur excel à l'autre (assisté par
l'utilisateur).
(il faut comprendre : un procédure principale qui dans un for each
wrksht appelle une sous-procédure a la fin de laquelle sont appelées
plusieurs procédures. bref)
J'envisage d'afficher un userform modeless avec un bouton qui
permettrait à l'utilisateur d'arreter le transfert (arret +
réinitaliser le code) si il voit que ca se passe mal.
Je sais que manuellement on peut interrompre l'execution par echap,
mais je n'ai aps réussi à coder ça sous vba, est-il possible en plus
de "réinitaliser" le code (que le pgmme ne reste pas en mode arret, et
ne m'affiche pas la fenetre de débogage)
(dans l'éventualité où ce n'est pas déconseillé d'appliquer de
telles méthodes)
On Error GoTo MaProcArret Application.EnableCancelKey = xlErrorHandler 'ton code ici
Exit Sub
MaProcArret: MsgBox "la macro a été interrompue" & vbLf & "j'arrête tout !", vbInformation, "Touche echap" 'l'instruction End termine immédiatement l'execution End
End Sub
Cordialement Pascal
"Céline" a écrit dans le message de news:
bonjour, voici ma petite question d'aujourd'hui :p A l'aide de toute une collection de macros, j'effectue un transfert progressif de données d'un classeur excel à l'autre (assisté par l'utilisateur). (il faut comprendre : un procédure principale qui dans un for each wrksht appelle une sous-procédure a la fin de laquelle sont appelées plusieurs procédures. bref) J'envisage d'afficher un userform modeless avec un bouton qui permettrait à l'utilisateur d'arreter le transfert (arret + réinitaliser le code) si il voit que ca se passe mal. Je sais que manuellement on peut interrompre l'execution par echap, mais je n'ai aps réussi à coder ça sous vba, est-il possible en plus de "réinitaliser" le code (que le pgmme ne reste pas en mode arret, et ne m'affiche pas la fenetre de débogage) (dans l'éventualité où ce n'est pas déconseillé d'appliquer de telles méthodes)
Merci beaucoup de vos conseils Céline
Céline
bonjour Pascal, & merci de ta proposition !
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ for each ... in... Call Proc_1 Next... end sub
sub Proc_1 action1 action2 ect. Call Proc_suivante End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans Proc_Princ ou faut-il le rajouter aussi dans chacune des sous-procédures suivantes? (sachant que je ve pouvoir l'arreter n'importe quand) D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2) ou fonctions appelées par mes sous-procédures j'utilise un On error Resume Next (indispensable vu que j'utilise un input box pour sélectionner des cellules et en récupérer l'adresse) Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo MaProcArret ou le code d'erreur interceptable (18 pour la touche echap) sera différent ?
Merci beaucoup bonne journée Céline
bonjour Pascal, & merci de ta proposition !
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ
for each ... in...
Call Proc_1
Next...
end sub
sub Proc_1
action1
action2 ect.
Call Proc_suivante
End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans
Proc_Princ ou faut-il le rajouter aussi dans chacune des
sous-procédures suivantes? (sachant que je ve pouvoir l'arreter
n'importe quand)
D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2)
ou fonctions appelées par mes sous-procédures j'utilise un
On error Resume Next
(indispensable vu que j'utilise un input box pour sélectionner des
cellules et en récupérer l'adresse)
Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo
MaProcArret ou le code d'erreur interceptable (18 pour la touche echap)
sera différent ?
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ for each ... in... Call Proc_1 Next... end sub
sub Proc_1 action1 action2 ect. Call Proc_suivante End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans Proc_Princ ou faut-il le rajouter aussi dans chacune des sous-procédures suivantes? (sachant que je ve pouvoir l'arreter n'importe quand) D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2) ou fonctions appelées par mes sous-procédures j'utilise un On error Resume Next (indispensable vu que j'utilise un input box pour sélectionner des cellules et en récupérer l'adresse) Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo MaProcArret ou le code d'erreur interceptable (18 pour la touche echap) sera différent ?
Merci beaucoup bonne journée Céline
papou
Bonjour Si tu as des On Error Resume Next, il faut songer à réinitialiser la gestion d'erreur avec On Error Goto 0. Pour ce qui est du positionnement du code proposé, il faut l'intégrer dans ta procédure de départ.
Cordialement Pascal
"Céline" a écrit dans le message de news:
bonjour Pascal, & merci de ta proposition !
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ for each ... in... Call Proc_1 Next... end sub
sub Proc_1 action1 action2 ect. Call Proc_suivante End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans Proc_Princ ou faut-il le rajouter aussi dans chacune des sous-procédures suivantes? (sachant que je ve pouvoir l'arreter n'importe quand) D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2) ou fonctions appelées par mes sous-procédures j'utilise un On error Resume Next (indispensable vu que j'utilise un input box pour sélectionner des cellules et en récupérer l'adresse) Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo MaProcArret ou le code d'erreur interceptable (18 pour la touche echap) sera différent ?
Merci beaucoup bonne journée Céline
Bonjour
Si tu as des On Error Resume Next, il faut songer à réinitialiser la gestion
d'erreur avec On Error Goto 0.
Pour ce qui est du positionnement du code proposé, il faut l'intégrer dans
ta procédure de départ.
Cordialement
Pascal
"Céline" <celine.michel1@gmail.com> a écrit dans le message de news:
1158138920.889705.160570@i42g2000cwa.googlegroups.com...
bonjour Pascal, & merci de ta proposition !
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ
for each ... in...
Call Proc_1
Next...
end sub
sub Proc_1
action1
action2 ect.
Call Proc_suivante
End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans
Proc_Princ ou faut-il le rajouter aussi dans chacune des
sous-procédures suivantes? (sachant que je ve pouvoir l'arreter
n'importe quand)
D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2)
ou fonctions appelées par mes sous-procédures j'utilise un
On error Resume Next
(indispensable vu que j'utilise un input box pour sélectionner des
cellules et en récupérer l'adresse)
Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo
MaProcArret ou le code d'erreur interceptable (18 pour la touche echap)
sera différent ?
Bonjour Si tu as des On Error Resume Next, il faut songer à réinitialiser la gestion d'erreur avec On Error Goto 0. Pour ce qui est du positionnement du code proposé, il faut l'intégrer dans ta procédure de départ.
Cordialement Pascal
"Céline" a écrit dans le message de news:
bonjour Pascal, & merci de ta proposition !
Par contre, pour reprendre la structure de mon code si j'ai
sub Proc_princ for each ... in... Call Proc_1 Next... end sub
sub Proc_1 action1 action2 ect. Call Proc_suivante End Sub
etc, etc....
Le code que tu m'as proposé doit-il être écrit uniquement dans Proc_Princ ou faut-il le rajouter aussi dans chacune des sous-procédures suivantes? (sachant que je ve pouvoir l'arreter n'importe quand) D'autre part, dans certaines de mes sous procédures (Proc_1, Proc_2) ou fonctions appelées par mes sous-procédures j'utilise un On error Resume Next (indispensable vu que j'utilise un input box pour sélectionner des cellules et en récupérer l'adresse) Cela ne risque-t-il pas de rentrer en "conflit" avec On Error GoTo MaProcArret ou le code d'erreur interceptable (18 pour la touche echap) sera différent ?