Bonjour à tous.
A partir d’éléments trouvés dans ce forum je tente d’utiliser une macro qui ouvre successivement tous les fichiers du répertoire de la macro et cela fonctionne correctement. Toutefois, dés que je change de répertoire, le système demande des fichiers d’un autre répertoire (le plus souvent sur C ) et la macro plante. Je ne comprends pas la logique
J’ai trouvé quelques astuces : installer sur nouveau répertoire, ouvrir, enregistrer, fermer, ré enregistrer en changeant le nom, et ça marche au bout d’un moment. Je me vois mal expliquer de faire toutes ces ruses à mes collaborateurs.
Peux t’on modifier la macro pour que le changement de répertoire soit pris en compte immédiatement??
Sub impr_finale()
Dim FichAOuvr, NomFich, NumeFich, Chemin As String
Chemin = ThisWorkbook.Path & "\"
ChDir Chemin
NomFich = Dir("*.xls")
NumeFich = 1
While NomFich <> ""
If NomFich = ThisWorkbook.Name Then GoTo fin
FichAOuvr = Chemin & NomFich
Workbooks.Open Filename:=FichAOuvr, UpdateLinks:=0
MsgBox "Impression (pour de faux)"
ActiveWorkbook.Close
fin:
NomFich = Dir
NumeFich = NumeFich + 1
Wend
MsgBox "C'est fini! (Cycle terminé)"
End Sub
Merci pour votre aide
A partir d’éléments trouvés dans ce forum je tente d’utiliser une macro qui ouvre successivement tous les fichiers du répertoire de la macro et cela fonctionne correctement. Toutefois, dés que je change de répertoire, le système demande des fichiers d’un autre répertoire (le plus souvent sur C ) et la macro plante. Je ne comprends pas la logique
J’ai trouvé quelques astuces : installer sur nouveau répertoire, ouvrir, enregistrer, fermer, ré enregistrer en changeant le nom, et ça marche au bout d’un moment. Je me vois mal expliquer de faire toutes ces ruses à mes collaborateurs.
Peux t’on modifier la macro pour que le changement de répertoire soit pris en compte immédiatement??
Sub impr_finale()
Dim FichAOuvr, NomFich, NumeFich, Chemin As String
Chemin = ThisWorkbook.Path & "\"
ChDir Chemin
NomFich = Dir("*.xls")
NumeFich = 1
While NomFich <> ""
If NomFich = ThisWorkbook.Name Then GoTo fin
FichAOuvr = Chemin & NomFich
Workbooks.Open Filename:=FichAOuvr, UpdateLinks:=0
MsgBox "Impression (pour de faux)"
ActiveWorkbook.Close
fin:
NomFich = Dir
NumeFich = NumeFich + 1
Wend
MsgBox "C'est fini! (Cycle terminé)"
End Sub
Merci pour votre aide