lancement de macro entre ficheirs

pascal_bidouille

XLDnaute Junior
Bonjour,

Je souhaite faire une macro qui s'exécute après la fermeture d'un classeur.
Pour cela, j'ai eu l'idée de faire un add-in excel dans lequel je positionne une macro du style :
Code:
sub apres_fichier
dim wa as workbook
set wa= activeworkbook

wa.close

' autres actions après fermeture

end sub

Cette macro est appelée par la macro Private Sub Workbook_BeforeClose(Cancel As Boolean) de mon classeur que je ferme grace à la commande :
Application.Run("'mon_addin'!apres_fichier")

Le lancement des macro entre les fichier fonctionne bien. Le problème est que la fermeture du classeur d'origine entraine l'arrêt de la macro Private Sub Workbook_BeforeClose qui elle même "tue" l’exécution de apres_fichier

Est-il possible de lancer cela pour que la macro ne soir pas terminée ?
 

camarchepas

XLDnaute Barbatruc
Re : lancement de macro entre ficheirs

Ben ,

Si tu vires l'évenementiel dans les classeurs autre que le maitre, et que tu géres tous dans le troisiéme,
le code de cloture étant dans le maitre tu ne perdra pas la main.
j'essai de revenir avec un exemple
 

camarchepas

XLDnaute Barbatruc
Re : lancement de macro entre ficheirs

Ben ,

Si tu vires l'évenementiel dans les classeurs autre que le maitre, et que tu géres tous dans le troisiéme,
le code de cloture étant dans le maitre tu ne perdra pas la main.
r avec un exemple :
Code:
Option Explicit

Sub Gestion_Part1()
'Ouverture du premier classeur
Workbooks.Open ThisWorkbook.Path & "\" & "Suite_Test1.xlsm"

'Opérations à faire dans ce classeur


'si opérations manuelles alors utiliser le gestion_Part2

'sinon ou fermeture avec sauvegarde
Workbooks("Suite_Test1.xlsm").Close True
'Ou sans sauvegarde
'Workbooks("Suite_Test1.xlsm").Close false
End Sub

Sub Gestion_part2()
'sinon ou fermeture avec sauvegarde
Workbooks("Suite_Test1.xlsm").Close True

'Ouverture du deuxiemme classeur
Workbooks.Open ThisWorkbook.Path & "\" & "Suite_Test2.xlsm"

'Etc
End Sub

'Dans le classeur suite , la macro de sortie devra -t -être celle ci

Code:
Sub Appel_Gestion_Part2()
Application.Run Gestion_part2
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm