ouvrir un classeur et lancer une macro dans celui-ci à partir d'un autre classeur

CHRISTOPHEAGPM

XLDnaute Nouveau
Bonsoir à tous, je viens vers vous et vous mets à nouveau à contribution pour m'aider à résoudre un problème qui me pose quelques difficultés.

J'ai un dossier nommé "origine" contenant un certain nombre de fichiers (ce nombre peut varier), dans chacun de ces fichiers une macro nommée import me permet de les mettre à jour.

Mon objectif est de creer un nouveau classeur "routine.xls" contenant une macro qui aura pour objectif d'ouvrir les uns apres les autres chacun des classeurs contenus dans "origine" et de lancer à chaque fois la macro "import" de ceux-ci.

c'est à dire la macro ouvre le premier fichier, lance la macro import de celui-ci, et une fois le traitement terminé enregistre les changements et passe au classeur suivant.


Voici ou j'en suis actuellement grace au différentes participation trouvées sur le forum :

Code:
Sub LancerMacroClasseur2()


Dim MonChemin$
Dim Monclass
MonChemin = "C:\Documents and Settings\moi\Bureau\suivi prod\origine\" 'Définit CheminFic = le dossier où se trouvent les fichiers clients
MesFic = Dir(MonChemin) 'Définit le dossier sur lequel on va boucler
While MesFic <> "" 'Démarrage de la boucle. Tant qu'on récupere un nom de fichier.
Workbooks.Open MonChemin & MesFic
Monclass = MesFic
Application.Run monclass.import

    MesFic = Dir 'On passe au suivant
Wend 'On boucle

    Calculate
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub

La macro bloque sur : Application.Run monclass.import


Merci beaucoup pour votre aide et je suis a votre disposition si mes explications ne sont pas claires...

Christophe
 

kjin

XLDnaute Barbatruc
Re : ouvrir un classeur et lancer une macro dans celui-ci à partir d'un autre classeu

Bonsoir,
Essaies comme ceci, non testé
Code:
Sub LancerMacroClasseur2()
Dim MonChemin$
MonChemin = "C:\Documents and Settings\moi\Bureau\suivi prod\origine\"
MesFic = Dir(MonChemin & "*.xls")
While MesFic <> ""
    Workbooks.Open MonChemin & MesFic
    Application.Run MesFic & "!Import"
    Workbooks(MesFic).Close True
    MesFic = Dir()
Wend
End Sub
A+
kjin
 

CHRISTOPHEAGPM

XLDnaute Nouveau
Re : ouvrir un classeur et lancer une macro dans celui-ci à partir d'un autre classeu

Merci beaucoup Kjin,

Je retrouve le meme problème, erreur 1004, le programme ne trouve pas la macro.
Peut etre l'ai je mal placée ou mal nommée ?
Si l'un d'entre vous peux jetter un petit coup d'oeil et m'éclairer ?
Je joins pour ce faire le fichier "de travail" et le fichier origine qui lui contient la macro à lancer (il est identique à tout les autres fichiers à ouvrir et à traiter).

Encore merci à Kjin et à vous tous qui régulièrement vous penchez sur mes problèmes et m'aidez à avancer.

Christophe.
 

Pièces jointes

  • pb.zip
    19.3 KB · Affichages: 53
  • pb.zip
    19.3 KB · Affichages: 42
  • pb.zip
    19.3 KB · Affichages: 54

kjin

XLDnaute Barbatruc
Re : ouvrir un classeur et lancer une macro dans celui-ci à partir d'un autre classeu

Bonjour,
Houlala...
Pourquoi utiliser le module de thisworkbook ?
Essaies avec les 2 fichiers joints, c'est juste pour tester dans un premier temps, tu remplaceras ensuite le message par le véritable code de ta macro import
"ClasseurContenantImport1.xls" à décompresser dans le répertoire "C:\Documents and Settings\moi\Bureau\suivi prod\origine\", l'autre n'importe où
A+
kjin
 

Pièces jointes

  • christophe.zip
    14.7 KB · Affichages: 94
  • christophe.zip
    14.7 KB · Affichages: 89
  • christophe.zip
    14.7 KB · Affichages: 87

CHRISTOPHEAGPM

XLDnaute Nouveau
Re : ouvrir un classeur et lancer une macro dans celui-ci à partir d'un autre classeu

Merci Kjin, je prend connaissance de ton message et je pense en comprendre la logique, le premier test fonctionne, je dors dessus et essaie avec la macro d'import dès demain matin.
Encore une fois MERCI pour ton interet et ton aide.

Christophe.
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 450
Membres
103 546
dernier inscrit
mohamed tano