Macro pour ouvrir classeur et lancer leur macro

  • Initiateur de la discussion Bufle
  • Date de début
B

Bufle

Guest
Bonjour,

J'aimerais à partir d'un classeur excel :
- ouvrir un autre classeur 'JUIN' puis lancer sa macro 'IMPRIM'
- ouvrir un autre classeur 'JUILLET' puis lancer sa macro 'IMPRIM'
- ouvrir un autre classeur 'SEPTEMBRE' puis lancer sa macro 'IMPRIM'
- ouvrir un autre classeur 'NOVEMBRE' puis lancer sa macro 'IMPRIM'
- puis enfin fermer tous les classeurs

Comment dois je faire ??

Merci
 

Blunet

XLDnaute Occasionnel
Salut Bufle,
En effectuant une recherche sur le forum je suis certain que tu aurais pu avoir des solutions deplus ta précoocuaption n'est pas très claire. La Macro qui déclence les autres où doit-elle se trouver ? les fichiers ) ouvris sont-ils dans une même répertoire ?

Essaye ce code à adapter si nécessaire :

Public Sub LancerMacro()
'Chemin est le chemin de chaque fichier, si tous les fichiers sont dans
'le même répertoire alors, il faut juste une Variable Chemin sinon il en
'faut autant que le nombre de répertoire distinct.
'Place ce code dans le module1 du classeur

Dim Chemin$
Dim MonTab(3) As String
Dim i%

MonTab(0) = 'JUIN.XLS': MonTab(1) = 'JUILLET.XLS'
MonTab(2) = 'SEPTEMBRE.XLS': MonTab(3) = 'NOVEMBRE.XLS'
For i = 0 To UBound(MonTab)
Workbooks.Open Chemin & MonTab(i)
Workbooks(Chemin & MonTab(i)).Activate
Module1.LancerMacro
Next i
End Sub
 
B

Bufle

Guest
Merci Brunet,

Les autres classeurs se trouvent effectivement dans le même répertoire. D'ailleurs votre macro ouvre bien le classeur JUIN... Néanmoins, la macro a lancé se trouve dans une feuille nommée IMPRIM et non dans le module...
Comment faire j'imagine dès lors qu'il faut changer 'Module1.LancerMacro'...

Merci pour votre aide

PS : je peux vous envoyer le repertoire si besoin est...
 
B

Bufle

Guest
Cher blunet,

Votre macro est (je pense) sur le point de marcher mais je crois que Worksheets('IMPRIM').TesteAppel pose problème
Voici le nom de ma macro qui s'applique à chaque feuille IMPRIM de mes 4 classeurs : PrintLoopingSpecial()

Merci pour tout
 

Discussions similaires