Bonjour à tous,
Je vous fais part d'un problème avec Application.Run je pense. Je suis sous Windows7 et Excel2013.
J'ai un fichier Excel nommé «TEST1.0.xlsm» et un autre nommé «OPEN-CLOSE_TEST.xlsm». Ces 2 fichiers sont pour l’exemple mais les vrais fichiers sont plus complexes mais représentatifs de ce que je cherche à faire.
«TEST1.0.xlsm» possède plusieurs macros et c’est mon fichier de travail (Cf. codes ci dessous).
A l’ouverture, ce fichier exécute normalement plusieurs macros (supprimées dans ce fichier test) et initialise une variable TESTFerm pour contrôler la fermeture du fichier. L’objectif est l’impossibilité de fermer avec la croix mais seulement avec un bouton (ici CommandButton1).
Ce fichier fonctionne parfaitement!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Private Sub Workbook_BeforeClose(Cancel As Boolean) If TESTFerm = False Then Cancel = True End If If Workbooks.Count = 1 Then Application.Quit End If End Sub Private Sub Workbook_Open() TESTFerm = False Worksheets("Feuil1").CommandButton2.Caption = "TESTFerm =False" 'Exécution de plusieurs macros spécifiques End Sub«OPEN-CLOSE_TEST.xlsm» doit permettre d’ouvrir le fichier «TEST1.0.xlsm», lancer les macros contenues dans «TEST1.0.xlsm» et refermer les 2 fichiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub CommandButton1_Click() TESTFerm = True ThisWorkbook.Close (False) End Sub
Lorsque je lance «OPEN-CLOSE_TEST.xlsm», la procédure dans Workbook_Open se lance bien, TEST1.0.xlsm s’ouvre correctement. Il se referme avec la ligne: Application.Run"'TEST1.0.xlsm'!ModuleZ.zQUIT"
Mais ensuite le code ne continue pas les 2 lignes suivantes et je ne comprends pas pourquoi. Il m’est nécessaire de refermer ce fichier «OPEN-CLOSE_TEST.xlsm» mais ça ne fonctionne pas.
Auriez-vous une idée pour m’aider? Je rappelle que l’objectif est que «OPEN-CLOSE_TEST.xlsm» puisse ouvrir, exécuter les macros présentes à l’ouverture de «TEST1.0.xlsm», referme «TEST1.0.xlsm» et puisse se fermer automatiquement (fermeture de «OPEN-CLOSE_TEST.xlsm»).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Workbooks.Count = 1 Then Application.Quit End If End Sub Private Sub Workbook_Open() Workbooks.Open ("O:\Manufacture\RD\Recherche\Laboratoires\Revetements\4 Projets Production\Winiar\Fichiers utiles pour Winiar\TEST_fichierVBS\TEST1.0.xlsm") Application.Run "'TEST1.0.xlsm'!ModuleZ.zQUIT" MsgBox "Run fait" ThisWorkbook.Close (False) End Sub
Merci de votre aide
Motmot
Partager