La macro =AB Principale =BB du classeur 1 s'execute bien, mais le
probl=E8me, c'est que l'instruction suivante de la macro du classeur
2 ne s'execute pas.
Comment =AB redonner la main =BB =E0 la macro du classeur 2 ?
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
anonymousA
bonjour,
normalement, la macro contenue dans le fichier 2 devrait retrouver la main. Ceci dit, dans ce qui suit je te fais part de mes constations dans certains cas de figure. A voir si celles-ci s'appliquent à ton cas.
'*********************************************************************************************************************************** 'PROBLEMES D'INTERRUPTION DE MACRO '********************************************************************************************************************************** 'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur que 'l 'exemple ci-dessous s'applique exactement à ta question mais on verra bien. ' 'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichier , 'appelons le fichier 2( par une macro d'un autre fichier , appelons le fichier '1) , et que si ce fichier 2 possède des macros automatiques d'ouverture et 'de fermeture , et que dans ces macros du fichier 2, on écrive une instruction 'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1 's 'interrompt. ' 'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivante
'Sub LAUNCH() 'Workbooks.Open "D:toto.xls" 'MsgBox "c'est fini" 'End Sub ' ''et que dans le fichier toto.xls on ait 2 macros dans le module thisworkbook ' 'Private Sub Workbook_BeforeClose(Cancel As Boolean) 'MsgBox "je me ferme" 'End Sub ' 'Private Sub Workbook_Open() 'MsgBox "c'est moi" 'ThisWorkbook.Close 'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les 'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le 'Message 'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto qui 'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède aucune 'instruction à priori permettant celà. ' 'Je ne suis donc pas sur que ce que je dis plus haut est une réplique même 'approximative de ce que tu décris. 'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre 'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc 'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) , 'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue dans le classeur 1, et lancer l'instruction suivante de la macro du classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :
La macro « Principale » du classeur 1 s'execute bien, mais le problème, c'est que l'instruction suivante de la macro du classeur 2 ne s'execute pas.
Comment « redonner la main » à la macro du classeur 2 ?
Merci
bonjour,
normalement, la macro contenue dans le fichier 2 devrait retrouver la main.
Ceci dit, dans ce qui suit je te fais part de mes constations dans certains
cas de figure. A voir si celles-ci s'appliquent à ton cas.
'***********************************************************************************************************************************
'PROBLEMES D'INTERRUPTION DE MACRO
'**********************************************************************************************************************************
'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur que
'l 'exemple ci-dessous s'applique exactement à ta question mais on verra bien.
'
'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichier ,
'appelons le fichier 2( par une macro d'un autre fichier , appelons le fichier
'1) , et que si ce fichier 2 possède des macros automatiques d'ouverture et
'de fermeture , et que dans ces macros du fichier 2, on écrive une instruction
'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1
's 'interrompt.
'
'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivante
'Sub LAUNCH()
'Workbooks.Open "D:toto.xls"
'MsgBox "c'est fini"
'End Sub
'
''et que dans le fichier toto.xls on ait 2 macros dans le module thisworkbook
'
'Private Sub Workbook_BeforeClose(Cancel As Boolean)
'MsgBox "je me ferme"
'End Sub
'
'Private Sub Workbook_Open()
'MsgBox "c'est moi"
'ThisWorkbook.Close
'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les
'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le
'Message
'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto qui
'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède aucune
'instruction à priori permettant celà.
'
'Je ne suis donc pas sur que ce que je dis plus haut est une réplique même
'approximative de ce que tu décris.
'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre
'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc
'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) ,
'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures
VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue
dans le classeur 1, et lancer l'instruction suivante de la macro du
classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :
normalement, la macro contenue dans le fichier 2 devrait retrouver la main. Ceci dit, dans ce qui suit je te fais part de mes constations dans certains cas de figure. A voir si celles-ci s'appliquent à ton cas.
'*********************************************************************************************************************************** 'PROBLEMES D'INTERRUPTION DE MACRO '********************************************************************************************************************************** 'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur que 'l 'exemple ci-dessous s'applique exactement à ta question mais on verra bien. ' 'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichier , 'appelons le fichier 2( par une macro d'un autre fichier , appelons le fichier '1) , et que si ce fichier 2 possède des macros automatiques d'ouverture et 'de fermeture , et que dans ces macros du fichier 2, on écrive une instruction 'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1 's 'interrompt. ' 'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivante
'Sub LAUNCH() 'Workbooks.Open "D:toto.xls" 'MsgBox "c'est fini" 'End Sub ' ''et que dans le fichier toto.xls on ait 2 macros dans le module thisworkbook ' 'Private Sub Workbook_BeforeClose(Cancel As Boolean) 'MsgBox "je me ferme" 'End Sub ' 'Private Sub Workbook_Open() 'MsgBox "c'est moi" 'ThisWorkbook.Close 'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les 'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le 'Message 'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto qui 'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède aucune 'instruction à priori permettant celà. ' 'Je ne suis donc pas sur que ce que je dis plus haut est une réplique même 'approximative de ce que tu décris. 'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre 'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc 'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) , 'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue dans le classeur 1, et lancer l'instruction suivante de la macro du classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :
La macro « Principale » du classeur 1 s'execute bien, mais le problème, c'est que l'instruction suivante de la macro du classeur 2 ne s'execute pas.
Comment « redonner la main » à la macro du classeur 2 ?
Merci
lylo
Bonjour, C'est tout à fait ça. Et la solution préconisée a marché (suppression de la fermeture du classeur par lui-même, fermeture du classeur 2 par une ligne de code dans le classeur 1)
Merci encore !
lylo
bonjour,
normalement, la macro contenue dans le fichier 2 devrait retrouver la mai n. Ceci dit, dans ce qui suit je te fais part de mes constations dans certai ns cas de figure. A voir si celles-ci s'appliquent à ton cas.
'************************************************************************ *********************************************************** 'PROBLEMES D'INTERRUPTION DE MACROS '************************************************************************ ********************************************************** 'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur q ue 'l 'exemple ci-dessous s'applique exactement à ta question mais on verr a bien. ' 'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichi er , 'appelons le fichier 2( par une macro d'un autre fichier , appelons le fi chier '1) , et que si ce fichier 2 possède des macros automatiques d'ouvert ure et 'de fermeture , et que dans ces macros du fichier 2, on écrive une inst ruction 'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1 's 'interrompt. ' 'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivan te
'Sub LAUNCH() 'Workbooks.Open "D:toto.xls" 'MsgBox "c'est fini" 'End Sub ' ''et que dans le fichier toto.xls on ait 2 macros dans le module thiswork book ' 'Private Sub Workbook_BeforeClose(Cancel As Boolean) 'MsgBox "je me ferme" 'End Sub ' 'Private Sub Workbook_Open() 'MsgBox "c'est moi" 'ThisWorkbook.Close 'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les 'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le 'Message 'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto q ui 'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède a ucune 'instruction à priori permettant celà. ' 'Je ne suis donc pas sur que ce que je dis plus haut est une réplique m ême 'approximative de ce que tu décris. 'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre 'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc 'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) , 'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue dans le classeur 1, et lancer l'instruction suivante de la macro du classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :
La macro « Principale » du classeur 1 s'execute bien, mais le problème, c'est que l'instruction suivante de la macro du classeur 2 ne s'execute pas.
Comment « redonner la main » à la macro du classeur 2 ?
Merci
Bonjour,
C'est tout à fait ça.
Et la solution préconisée a marché (suppression de la fermeture du
classeur par lui-même, fermeture du classeur 2 par une ligne de code
dans le classeur 1)
Merci encore !
lylo
bonjour,
normalement, la macro contenue dans le fichier 2 devrait retrouver la mai n.
Ceci dit, dans ce qui suit je te fais part de mes constations dans certai ns
cas de figure. A voir si celles-ci s'appliquent à ton cas.
'************************************************************************ ***********************************************************
'PROBLEMES D'INTERRUPTION DE MACROS
'************************************************************************ **********************************************************
'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur q ue
'l 'exemple ci-dessous s'applique exactement à ta question mais on verr a bien.
'
'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichi er ,
'appelons le fichier 2( par une macro d'un autre fichier , appelons le fi chier
'1) , et que si ce fichier 2 possède des macros automatiques d'ouvert ure et
'de fermeture , et que dans ces macros du fichier 2, on écrive une inst ruction
'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1
's 'interrompt.
'
'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivan te
'Sub LAUNCH()
'Workbooks.Open "D:toto.xls"
'MsgBox "c'est fini"
'End Sub
'
''et que dans le fichier toto.xls on ait 2 macros dans le module thiswork book
'
'Private Sub Workbook_BeforeClose(Cancel As Boolean)
'MsgBox "je me ferme"
'End Sub
'
'Private Sub Workbook_Open()
'MsgBox "c'est moi"
'ThisWorkbook.Close
'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les
'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le
'Message
'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto q ui
'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède a ucune
'instruction à priori permettant celà.
'
'Je ne suis donc pas sur que ce que je dis plus haut est une réplique m ême
'approximative de ce que tu décris.
'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre
'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc
'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) ,
'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures
VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue
dans le classeur 1, et lancer l'instruction suivante de la macro du
classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :
Bonjour, C'est tout à fait ça. Et la solution préconisée a marché (suppression de la fermeture du classeur par lui-même, fermeture du classeur 2 par une ligne de code dans le classeur 1)
Merci encore !
lylo
bonjour,
normalement, la macro contenue dans le fichier 2 devrait retrouver la mai n. Ceci dit, dans ce qui suit je te fais part de mes constations dans certai ns cas de figure. A voir si celles-ci s'appliquent à ton cas.
'************************************************************************ *********************************************************** 'PROBLEMES D'INTERRUPTION DE MACROS '************************************************************************ ********************************************************** 'je ne sais pas sous quelle version d'Excel tu es et je ne suis pas sur q ue 'l 'exemple ci-dessous s'applique exactement à ta question mais on verr a bien. ' 'Sous Excel 2000, ce que j'ai pu constater c'est que si on ouvre un fichi er , 'appelons le fichier 2( par une macro d'un autre fichier , appelons le fi chier '1) , et que si ce fichier 2 possède des macros automatiques d'ouvert ure et 'de fermeture , et que dans ces macros du fichier 2, on écrive une inst ruction 'de fermeture du fichier 2, alors l'exécution de la macro du fichier 1 's 'interrompt. ' 'Exemple. Soit un fichier appelé tata.xls qui possède la macro suivan te
'Sub LAUNCH() 'Workbooks.Open "D:toto.xls" 'MsgBox "c'est fini" 'End Sub ' ''et que dans le fichier toto.xls on ait 2 macros dans le module thiswork book ' 'Private Sub Workbook_BeforeClose(Cancel As Boolean) 'MsgBox "je me ferme" 'End Sub ' 'Private Sub Workbook_Open() 'MsgBox "c'est moi" 'ThisWorkbook.Close 'End Sub
'ce qui va se passer si on lance la Sub LAUNCH, c'est qu'on aura bien les 'deux messages MsgBox "c'est moi" et MsgBox "je me ferme" mais jamais le 'Message 'msgbox "c'est fini", ce qui montre bien que c'est la fermeture de toto q ui 'fait interrompre la macro LAUNCH, alors pourtant que toto ne possède a ucune 'instruction à priori permettant celà. ' 'Je ne suis donc pas sur que ce que je dis plus haut est une réplique m ême 'approximative de ce que tu décris. 'Ceci dit, il m'encline à penser que si tu as une macro principale qui ouvre 'des fichiers, il faut que ce soit cette macro qui les ferme aussi ( donc 'supprimer l 'ordre de fermeture du fichier X par lui même si c'est le cas ) , 'car dans ce cas, l'exécution de la macro prinicpale sera complète.
A+
Bonjour,
J'ai deux classeurs Excel, chacun contient une série de procédures VBA.
Je voudrais, à partir du classeur 2 pouvoir lancer la macro contenue dans le classeur 1, et lancer l'instruction suivante de la macro du classeur 2.
J'ai tapé le code suivant dans la macro du classeur 2 :