Copier cells de plusieurs fichiers source vers un classeur
Bonjour,
je reçois quotidiennement des fichiers xls que j’accumule (près d'une centaine) dans un répertoire (appelons le : « AM_ete »). Ces derniers ont tous le même format et ils sont identifiés par leur date de création:
QUERGN1_AM_ISSUE_pour_ete_aaaa-mm-jjscores_score.xls
(l’unique feuillet qui abrite les données porte le même nom que le fichier).
Grâce à une macro, je désire copier/coller des cellules ciblées des fichiers quotidiens (tous ceux qui sont dans le répertoire) vers un nouveau classeur: sommaire_v5. Ce dernier comporte plusieurs feuillets propre à des lignes spécifiques des fichiers sources.
- Le premier feuillet : YUL devrait inclure le bouton de démarrage de la macro en A1::A2
- La colonne « A4 et plus » considère la date incluse dans le nom des fichiers sources.
- Les colonnes B à O : les données ciblées des fichiers sources. (les références des données sont indiquées sur la ligne 4).
Je joins 3 fichiers quotidiens et le classeur : sommaire_V5.
https://www.excel-pratique.com/~files/doc2/oy5AVAM_ete.zip
Je vous remercie en avance
JL
PS : Par soucis de simplicité, les fichiers sources ont été abrégés de même que le classeur : "sommaire_v5" qui inclura normalement 12 feuillets.
Bonjour JLMoreau, forum,
Voici le fichier sommaire_v5.xls avec macro : https://www.excel-pratique.com/~files/doc2/sommaire_v5.xls
Tu peux lancer la macro depuis n'importe quel répertoire, il suffit que tu mettes le fichier sommaire_v5.xls
et les fichiers de type QUERGN1_AM_ISSUE_pour_ete_aaaa-mm-jjscores_score.xls dans le même répertoire.
Si tu rencontres des problèmes d'adaptation, reviens.
Bonjour VBA-NEW et gens du forum,
tout d'abord, j'aimerais te remercier pour ton aide.
J'ai testé la macro:
- elle fonctionne très bien avec les fichiers-source que j'ai joint avec mon message initial.
- j'ai remplacé ces fichiers avec les vrais fichiers source du même nom (beaucoup plus vaste). Encore là, tout va bien!
Cependant, j'ai noté quelques anomalies:
- la macro fonctionne normalement dans un répertoire mais bizarrement aucune action ne se passe lorsque je l'éxécute dans un autre répertoire pourtant identique (au contenu identique: les mêmes fichiers-source et le même sommaire_V5).
- lorsque je tente de rajouter un fichier-source (le répertoire en compte une centaine)
ex: QUERGN1_AM_pour_ete_2009-06-06scores_score
-parfois la macro fonctionne mais les scores de ce dernier fichier-source sont ignorés
-sinon, j'obtiens une erreur d'exécution 1004. Voici la ligne en faute:
.Do While Format(.Cells(i, 1), "yyyy-mm-dd") <> dateFichier
- Dans sommaire_v5, j'ai tenté d'enlever les dates inscrites dans la colonne: "A" avant d'exécuter la macro. J'obtiens le même type d'erreur exécution 1004 comme précédemment.
Voilà,
ton aide est très appréciée
JL
Bonjour JLMoreau, forum,
JLMoreau a écrit :Cependant, j'ai noté quelques anomalies:
- la macro fonctionne normalement dans un répertoire mais bizarrement aucune action ne se passe lorsque je l'éxécute dans un autre répertoire pourtant identique (au contenu identique: les mêmes fichiers-source et le même sommaire_V5).
Attention JLMoreau, le nom du fichier doit être sommaire_v5.xls et pas sommaire_V5.xls. Si tu veux changer le nom, modifie le code VBA en conséquence.
JLMoreau a écrit :- lorsque je tente de rajouter un fichier-source (le répertoire en compte une centaine)
ex: QUERGN1_AM_pour_ete_2009-06-06scores_score
-parfois la macro fonctionne mais les scores de ce dernier fichier-source sont ignorés
-sinon, j'obtiens une erreur d'exécution 1004. Voici la ligne en faute:
.Do While Format(.Cells(i, 1), "yyyy-mm-dd") <> dateFichier
- Dans sommaire_v5, j'ai tenté d'enlever les dates inscrites dans la colonne: "A" avant d'exécuter la macro. J'obtiens le même type d'erreur exécution 1004 comme précédemment.
Bah en fait, je croyais que la date dans le fichier sommaire_v5.xls était renseignée
Donc toi tu veux récupérer la date qui se trouve dans le fichier QUERGN1_AM_ISSUE_pour_ete_aaaa-mm-jjscores_score.xls, c'est bien ça?
Voici la correction : https://www.excel-pratique.com/~files/doc2/oOdb7sommaire_v5.xls
(N'oublie pas de renommer le fichier ci-dessus en sommaire_v5.xls)
Si encore problème, reviens
Bonjour vba-new,
Concernant ta premiere mise-en-garde:
Attention JLMoreau, le nom du fichier doit être sommaire_v5.xls et pas sommaire_V5.xls
je répète que les 2 répertoires sont identiques (j'ai fait un copier-coller). Le "V" écrit est une faute de ma part lors de la rédaction du post. J'ai continué à investiguer cette anomalie et j'ai constaté que la macro fonctionne lorsque le répertoire est sur le disque dur de mon ordinateur. Par contre, lorsque je loge le répertoire sur une clé: USB, la macro de sommaire_v5 refuse de fonctionner. Enfin! ce n'est pas grave... tant que j'obtiens des résultats.
Concernant la modification que tu as apporté... j'ai soumis la macro à un répertoire de plus de 75 fichiers-sources. Tout a fonctionné numéro 1.
Merci encore,
je suis pleinement satisfait.
JL
Re,
JLMoreau a écrit :Le "V" écrit est une faute de ma part lors de la rédaction du post.
Eh bien soit plus rigoureux que diable
Si tu commences à inventer des erreurs, on saura plus où donner de la tête!
Voici une version qui devrait marcher n'importe où. Je te laisse tester : https://www.excel-pratique.com/~files/doc2/Ou6Xlsommaire_v5.xls
J'ai modifié les lignes suivantes :
Path = ThisWorkbook.Path & ""Fichier = Dir(Path & "QUERGN1_AM_ISSUE_pour_ete_*.xls") Workbooks.Open (Path & Fichier)Grâce à la toute dernière modification à la macro, tout fonctionne maintenant sur ma clé: USB.
Excellent et merci!
JL