Ouvrir fichier en boucle

Bonjour tout le monde,

Voila, une demande un peu bizarre mais je pensait que ce serait simple, et ben non...

J'ai fait un classeur qui importe des fichiers .txt, les traite, monte un rapport...etc...

Pour avoir un historique, j'ai dans mes archives une centaine de fichiers .txt et je voudrais executé mon classeur donc une centaine de fois.

Ce classeur est entiérement automatisé et les macros se lancent avec l'ouverture, sauvegarde le rapport et se ferme tout seul, cependant, chaque rapport mets entre cinq et dix minutes a sortir et je ne me voit pas rester devant toute la journée pour réouvrir le classeur à chaque fois qu'il se referme et ce une centaine de fois !

J'ai essayer de faire une "boucle" entre deux classeur pour qu'ils s'ouvrent et se ferment entre eux mais je m'enfonce dans une usine a gaz qui en plus ne fonctionne pas.

je resume : comment faire une macro dans un classeur "A" pour qu'il ouvre le classeur "B", le laisse faire sa procedure, le laisse se fermer automatiquement et le rouvre ensuite et ce en boucle...

Cordialement

Bonjour,

Pourquoi fermes-tu le classeur B?

Comment fais-tu tes importations des fichiers texte (.txt)?

Où colles-tu ces données? (toutes à la suite les unes des autres, dans un onglet différent, pour chaque rapport...

Bref, précise un peu plus ton besoin, et au pire, joins le classeur B, ainsi qu'un fichier texte, sans données confidentielles, mais avec exactement la même structure qu'un fichier texte de travail..

@ te relire

Bonjour,

en fait le classeur B est un classeur qui ne change jamais, je l'ouvre, il execute sa procédure (environ 10 minutes) etabli un rapport, sauvegarde ce rapport et se ferme sans être enregistrer. C'est pour cela que je doit le fermer, en fait pour qu'il "s'initialise". En réel il s'execute tout seul via une tache windows, tout les matins mais une seule fois, je ne m'en occupe jamais.

Cependant, lorsque je modifie ce classeur "maitre" (rajoute un graphique ou autre), plutot que d'attendre les effets sur le rapport, je veux l'executer sur une centaine de fichier, comme cela, j'ai tout de suite les rapport des trois derniers mois.

Donc, le contenu du classeur B n'est pas interessant. pour faciliter le travail, j'ai fait un classeur bidon avec une macro auto_open (la elle est désactivée).

j'ecris la macro en clair, comme je la vois a partir d'un autre classeur "A"

 J'ouvre le classeur "B" une premiere fois
j'attends que le classeur "B" m'envoie un signal qui me dit qu'il a fini et qu'il se ferme.
apres une petite tempo de 10 secondes :

 j'ouvre le classeur "B"  une deuxieme fois
j'attends que le classeur "B" m'envoie un signal qui me dit qu'il a fini et qu'il se ferme.
apres une petite tempo de 10 secondes :

et ainsi de suite jusqu'a 100 fois

Voila, c'est un peu bizarre mais je ne l'utiliserais qu'en cas de modifs sur le classeur "B", donc pas souvent.

Voici le classeur "bidon"

19b.zip (5.76 Ko)

Re-,

disons, qu'avec l'enregistreur de macro, j'aurai fait la même chose....

Sans moi, si tu ne fais pas plus d'efforts....

Ce qui aurait pu être intéressant, c'était ton code de traitement...

M'enfin, c'que j'en dis....

Bon courage

Re,

Désolé si ce n'est pas assez interressant pour toi

Si je demande c'est que j'ai essayé, mais je me suis mélangé les pinceaux et à chaque fois je rajoutait une ligne pour que ça bloque encore. donc j'ai demandé car je pensait que c'etais simple et que c'etait moi qui etait encore plus nul que je pensait. mais bon, pas grave, je vais continuer à chercher.

Pour mon autre classeur, si je ne le mets pas, c'est que deja, il fonctionne tres bien et que je ne veux rien changé dessus pour l'instant (même si il y aurait matière pour l'optimiser mais bon...), et en plus il y a pas mal de données confidentielles. Si ça t'interesse vraiment, je pourrait t'envoyer la procedure mais je pense pas que ça te serve a grand chose ce ne sont que des macro qui sont misent bout à bout.

enfin, pas grave...

sinon, pour mon affaire,

Dans le classeur "B" à la fin de la procédure auto_open, je déclenche la macro de "A"

Application.Run "'A.xls'!Module1.ouvrir"
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub ouvrir()
 Windows("B.xls").Close
Sleep 10000
Workbooks.Open Filename:="C:\Users\Maguetlolo\Desktop\B.xls"

End Sub

le classeur "A" ferme bien le classeur "B"

mais ne me le rouvre pas et la macro s'arette là.

j'ai essayer de faire cela :

 Windows("B.xls").Close
 ThisWorkbook.Activate
Sleep 10000
Workbooks.Open Filename:="C:\Users\Maguetlolo\Desktop\B.xls"

mais c'est pareil. Si quelqu'un a une idée...

Cordialement

Bon, j'ai enfin réussi.

Voici la macro :

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub ouvrir()

 Workbooks.Open Filename:="C:\Users\maguetlolo\Desktop\B.xls"
Macro2
End Sub

Sub Macro2()
'
Do While Range("A1").Value <> "toto"
Workbooks("ouvre.xls").Activate
ferme
ouvre
Loop

End Sub

Sub ouvre()
    ChDir "C:\Users\maguetlolo\Desktop"
    Workbooks.Open Filename:="C:\Users\maguetlolo\Desktop\Desktop\B.xls"
End Sub

Sub ferme()
Windows("B.xls").Close
End Sub

voila, en fait je m'enbetais a essayer de faire agir deux procedures differentes sur chacun des classeurs mais c'est ce qui m'a bloqué. (juste une petite chose: l'enregistreur de macro ne l'aurais pas fait............)

Cordialement

Rechercher des sujets similaires à "ouvrir fichier boucle"