Fermer 2 fichiers par macro

Fermer 2 fichiers par macro - VB/VBA/VBS - Programmation

Marsh Posté le 10-01-2006 à 14:56:48    

Bonjour  
 
J'ai une macro dans le fichier fiche2.xls qui ferme le fichier fiche1.xls, mais dès que le fichier fiche1.xls se ferme, la macro ne continue pas, c'est-à-dire que le fichier fiche2.xls ne se ferme jamais.  
 
Voici mon code VBA  
Notez que mes valeurs ont été déclarées.  
Set bk1 = Workbooks("fiche1.XLS" )  
Set bk2 = Workbooks("fiche2.xls" )  
bk1.Close savechanges:=True  
bk2.Close savechanges:=True  
 
Qu'est-ce que je dois changer ou ajouter pour que la fiche2.xls se ferme après la fiche1.xls?  
 
Note: veuillez noter que la fonction workbook_open de fiche1.xls ouvre la fiche2.xls. J'ignore si cela peut changer quelque chose, mais je préfèrais le mentionner.  
 
Merci  
 
Zangel

Reply

Marsh Posté le 10-01-2006 à 14:56:48   

Reply

Marsh Posté le 10-01-2006 à 15:01:46    

Bah chez moi ca fonctionne bien ton code...
 
Edit: pas fait gaffe: ta macro de départ qui a ouvert le fichier 2 à partir du 1 est encore en cours??
Ca peut être cela...

Message cité 1 fois
Message édité par Gusdabo le 10-01-2006 à 15:02:44
Reply

Marsh Posté le 10-01-2006 à 15:16:24    

Gusdabo a écrit :

Bah chez moi ca fonctionne bien ton code...
 
Edit: pas fait gaffe: ta macro de départ qui a ouvert le fichier 2 à partir du 1 est encore en cours??
Ca peut être cela...


 
J'ai même ajouter à fiche1.xls dans workbook_beforeClose() de fermer la fiche2.xls, mais ça ne fonctionne pas non plus.
 
Quelqu'un a la solution à ce problème? Merci.

Reply

Marsh Posté le 10-01-2006 à 15:19:36    

Ta macro d'origine est terminée ou pas?

Reply

Marsh Posté le 10-01-2006 à 15:41:06    

Gusdabo a écrit :

Ta macro d'origine est terminée ou pas?


 
Je ne suis pas sûre de bien te comprendre. Si tu parles de la macro workbook_open du fichier fiche1.xls, oui elle est terminée.
 
Il y a une chose que j'ai oublié de mentionné:
J'ai un bouton dans fiche1.xls qui lorsqu'on clique dessus appelle une macro de fiche2.xls pour éxécuter quelques opérations et quand le tout est terminé, c'est là que je demande à fermer les deux fichiers.
 
Une autre chose que j'aimerais c le code macro pour vérifier si un fichier est déjà ouvert et si c le cas, alors on ne le réouvre pas.
 
Merci

Reply

Marsh Posté le 10-01-2006 à 15:48:51    

pour savoir si fiche2 est déja ouvert, il faut qq chose comme:
 
 
let zz=0
for each wk in workbooks
    if wk.name = "fiche2.xls" then  
    let zz = 1
next
if zz=0 then workbooks.open("fiche2.xls" )
 
'suite de ton code et de tes traitements...
 
 
 
Ensuite, ce qu'il faut c'est que le code de fermeture soit dans ton fiche1, à la fin de la même macro qui a ouvert fiche2 (celle que tu as appelé avec ton bouton dans fiche1)
et tu ferme fiche2 en premier.
 
 
Je sais pas si je suis super clair??

Message cité 1 fois
Message édité par Gusdabo le 10-01-2006 à 15:50:34
Reply

Marsh Posté le 10-01-2006 à 16:08:47    

Gusdabo
 
merci beaucoup pour ton aide. Je n'ai pas mes fichiers Excel avec moi, mais je vais essayer le tout ce soir. J'pense que j'ai trouvé la solution à mes problèmes de macros.
Encore une fois, merci.
 
Zangel
 

Gusdabo a écrit :

pour savoir si fiche2 est déja ouvert, il faut qq chose comme:
 
 
let zz=0
for each wk in workbooks
    if wk.name = "fiche2.xls" then  
    let zz = 1
next
if zz=0 then workbooks.open("fiche2.xls" )
 
'suite de ton code et de tes traitements...
 
 
 
Ensuite, ce qu'il faut c'est que le code de fermeture soit dans ton fiche1, à la fin de la même macro qui a ouvert fiche2 (celle que tu as appelé avec ton bouton dans fiche1)
et tu ferme fiche2 en premier.
 
 
Je sais pas si je suis super clair??


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed