Microsoft 365 Récupérer dans un seul fichier Excel les données de plusieurs fichiers au format .xlsx

Quentin Le Corrézien

XLDnaute Nouveau
Bonjour à tous,

Je pense rencontrer un problème qui est monnaie courante sur ce forum mais qui m'échappe complètement.
Malgré mes nombreuses lectures, je ne parviens toujours pas à trouver la solution ...

Je m'explique !!

J'ai récupéré l'ensemble des rapports de vente de mon entreprise sur l'année 2021.
Mon système n'étant pas le plus adéquat sur le marché, j'ai d'abord dû télécharger tous mes fichiers un par un à la main (365 exports ... le bonheur !!!).
Je me retrouve à présent avec tous ces fichiers et je dois les rassembler en un seul document (format .xlsx) afin de pouvoir en tirer des statistiques claires.

Tous les fichiers possèdent la même structure (nombre de lignes et de colonnes identiques) et se nomment de la façon suivante : AAAA-MM-JJ_NOM DE MON ENTREPRISE_Sales Report
Tous ces fichiers sont rassemblés dans un seul et même dossier.

Autre problème ... qui n'en sera peut-être pas un pour vous (je suis une quiche en VBA :eek:) :
Dans tous mes fichiers, certaines lignes ne me servent à rien (surlignées en rouge dans les fichiers tests joints).
L'avantage est que ces lignes inutiles sont toujours les mêmes dans tous les fichiers.

En conclusion :
J'ai besoin de regrouper 365 fichiers en un seul en supprimant des lignes superflues dans chacun de ces fichiers avant le transfert dans le document Excel commun.

Je suis certain qu'une macro peut me permettre d'arriver plus rapidement à mon but plutôt que si je dois les copier/coller un par un à la main et faire les suppressions de lignes moi-même.
Mais comme mes connaissances en VBA sont inexistantes (n'ayons pas peur des mots), je me tourne vers vous pour savoir ce qu'il serait possible de faire.

Comme expliqué plus haut, vous trouverez en pièces jointes quelques documents tests sur lesquels vous pourrez vous appuyer si besoin.

Par avance, merci beaucoup !! :) 🙏
 

Pièces jointes

  • 2021 - Sales Reports - Fichiers tests.zip
    47.4 KB · Affichages: 11

cp4

XLDnaute Barbatruc
Bonjour,

Si j'ai bien compris, fichier joint à mettre dans le même dossier que tes fichiers (/!\ code ne prend pas en compte le nom des fichiers, il va ouvrir tous les fichiers en 'xlsx'). Ensuite exécute le code dans le module 1.

Bonne journée.
 

Pièces jointes

  • Import.xlsm
    19.6 KB · Affichages: 14

mromain

XLDnaute Barbatruc
Bonjour,

Ci-joint une autre solution à base de PowerQuery.
Il faut mettre à jour l’emplacement du dossier contenant les fichiers sources dans la cellule et actualiser le tableau (clic droit > Actualiser).
Cela semble fonctionner sur les exemples que t’as fournis.

Les données sont remaniées afin de faciliter les analyses (par TCD par exemple).
La fonction de traitement/remaniement d’un fichier est défini dans la requête Dev_ExtractionDonnéesFichier.
La requête ExtractionData est celle qui agrège l’ensemble des données et qui est renvoyée dans le tableau.

A+
 

Pièces jointes

  • AgregationFichiers.xlsx
    20.1 KB · Affichages: 9

Quentin Le Corrézien

XLDnaute Nouveau
Bonjour,

Si j'ai bien compris, fichier joint à mettre dans le même dossier que tes fichiers (/!\ code ne prend pas en compte le nom des fichiers, il va ouvrir tous les fichiers en 'xlsx'). Ensuite exécute le code dans le module 1.

Bonne journée.
Bonjour,

Merci beaucoup pour ta réponse.

Pour être précis, j'ai 365 fichiers Excel qui sont rangés dans un seul et même dossier.
Tout ce que je cherche à faire, c'est de prendre le contenu de ces 365 fichiers, supprimer les lignes inutiles et tout rassembler dans un seul et même document Excel au format .xlsx.
Ensuite, le but est que je puisse en tirer des tableaux croisés dynamiques et des graphiques claires pour le suivi et l'évolution de mon entreprise.

Je vais essayer ta macro. Je te tiens au courant. :)
 

Quentin Le Corrézien

XLDnaute Nouveau
Bonjour,

Ci-joint une autre solution à base de PowerQuery.
Il faut mettre à jour l’emplacement du dossier contenant les fichiers sources dans la cellule et actualiser le tableau (clic droit > Actualiser).
Cela semble fonctionner sur les exemples que t’as fournis.

Les données sont remaniées afin de faciliter les analyses (par TCD par exemple).
La fonction de traitement/remaniement d’un fichier est défini dans la requête Dev_ExtractionDonnéesFichier.
La requête ExtractionData est celle qui agrège l’ensemble des données et qui est renvoyée dans le tableau.

A+
Bonjour,

Merci beaucoup pour ta réponse.

Je vais télécharger Power Query et tester ton code.

Je te tiens au courant du résultat. :)
 

Quentin Le Corrézien

XLDnaute Nouveau
Bonjour,

Ci-joint une autre solution à base de PowerQuery.
Il faut mettre à jour l’emplacement du dossier contenant les fichiers sources dans la cellule et actualiser le tableau (clic droit > Actualiser).
Cela semble fonctionner sur les exemples que t’as fournis.

Les données sont remaniées afin de faciliter les analyses (par TCD par exemple).
La fonction de traitement/remaniement d’un fichier est défini dans la requête Dev_ExtractionDonnéesFichier.
La requête ExtractionData est celle qui agrège l’ensemble des données et qui est renvoyée dans le tableau.

A+
Je viens de tester ton fichier.
J'ai rentré le chemin de mes fichiers puis j'ai actualisé le tableau.
Un message d'erreur apparaît ...
Je dois faire quelque chose de travers.

1648564878625.png
 

Quentin Le Corrézien

XLDnaute Nouveau
Re,

@Quentin Le Corrézien : Tu mets le fichier dans le même dossier que tes 365 fichiers et tu exécutes le code.
cette ligne de code ci-dessous donne le chemin du fichier, donc celui de tes 365 fichiers.
VB:
Chemin = ThisWorkbook.Path & Application.PathSeparator

A+
@cp4 : Merci pour ton retour rapide. :)

Malheureusement, la macro plante à un moment.
Je te laisse voir les images en pièces jointes.

Merci d'avance pour ton aide.

1648566134042.png


1648566090129.png
 

mromain

XLDnaute Barbatruc
Je viens de tester ton fichier.
J'ai rentré le chemin de mes fichiers puis j'ai actualisé le tableau.
Un message d'erreur apparaît ...
Je dois faire quelque chose de travers.

Regarde la pièce jointe 1135246

Bonjour Quentin,

Le problème rencontré se situe au niveau des options de sécurité.
Depuis Power Query, il faut aller dans Fichier > Options et paramètres > Options de requête, puis dans GLOBAL > Confidentialité et enfin cliquer sur Toujours ignorer les niveaux de confidentialité.

La requête devrait ensuite pouvoir se rafraichir.

Bonne journée
 

cp4

XLDnaute Barbatruc

Discussions similaires

M
Réponses
9
Affichages
449
Maikales
M

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG