XL 2019 Copier automatiquement les données à partir de plusieurs classeurs

re4

XLDnaute Occasionnel
Bonjour,
Dans un répertoire il y a un certain nombre de fichiers CVS avec pour nom de fichier par exemple cette syntaxe :
Fichier-id-10.cvs
Fichier-id-15.cvs
etc...

Les données de ces classeurs sont toujours aux mêmes endroits mais pas les mêmes
Exemple
Fichier-id.10.CSVFichier-id15.CSV
En A1 : image id : 10En A1 ; image id : 15
En A2 : Nom : xxEn A2 : Nom : yyy

L'idée est de recopier (en incrémentant les lignes) les données de ces fichiers dans une seule feuille d'un nouveau classeur.
Ce que je ne sais pas faire est à partir de ce nouveau classeur d'aller chercher automatiquement les données de tous les fichiers CVS (en les ouvrant ou pas)
(c'est l'automatisme qui me pose problème)
Résultat attendu :
1619556522237.png


Merci pour votre aide
 

R@chid

XLDnaute Barbatruc
Bonjour,
pense à utiliser power query, c'est un très bon outil, heureusement t'es sous Excel 2019, tu peux alors en profiter.
Si tu n'arrives pas à le faire, tu dois nous joindre 3 fichiers CSV sans données confidentielles pour que l'on puisse t'aider.
 

re4

XLDnaute Occasionnel
Bonjour,
Je ne connaissais pas power query, ça a l'air très efficace en cherchant un peu qq tutos je n'ai pas trouvé pour l'instant comment mettre en colonne que les 2 premières lignes (voir exemple classeurs 1,2,3)
remplacer txt par csv
Classeurs 1,2,3 csv les données à extraires et le classeur compil l'attendu.
il y aura entre 40 à 50 classeurs ...
Merci
 

Pièces jointes

  • classeur complé.xlsx
    9.9 KB · Affichages: 15
  • Classeur-1.txt
    57 bytes · Affichages: 7
  • Classeur-2.txt
    57 bytes · Affichages: 5
  • Classeur-3.txt
    57 bytes · Affichages: 4

merinos

XLDnaute Accro
Salut re4,

J'ai fait un premier jet...

Dans l'editeur de query, tu dois donner le chemin d'acces...

1619607664734.png



Tu trouveras 3 query et 2 fonctions.

Tables et Headers ont servi a créer les fonctions

Downloads :
recherche les fichiers
selectionne les ".txt" puis les "Classeur*.*".
ajoute de colonnes de type tables avec les 2 fonctions... puis les ouvre.
C'est fini.

tu trouvera ma méthode et les explications.
 

Pièces jointes

  • classeur complé.xlsx
    20.4 KB · Affichages: 6

re4

XLDnaute Occasionnel
Bonjour
Merci beaucoup, ça marche avec les fichiers que j'ai envoyé, malheureusement les originaux sont un plus complexes (je ne peux pas les envoyer pour l'instant)
Je vais essayer de comprendre mais c'est nouveau pour moi
Encore merci
 

merinos

XLDnaute Accro
transformer un query en fonction est simple : tu ajoute la premeiere ligne (le nom de la fonction en interne avec les parametres transmis, ici seulement le nom du fichier) et la fin afin de fermer la fonction. et tu changes le nom du fichier a importer pour prendre le parametre.
 

re4

XLDnaute Occasionnel
Merinos,
Je viens juste de recevoir le fichier original que j'ai anonymisé, désolé il est un peu différent, je pensais m'en sortir mais comme c'est nouveau pour moi, je suis perdu...
Comme je le disais il va y avoir au moins 50 fichiers, je peux le faire manuellement ou semi auto mais c'est du boulot.
Si j'ai bien compris on peut aller directement chercher le répertoire et tous les fichier seront compilés ?
1619616900774.png


Si tu as le temps...
Merci beaucoup
 

Pièces jointes

  • cg-votes-gallery-1 (attendu).xlsx
    10.1 KB · Affichages: 5
  • cg-votes-gallery-1 .txt
    468 bytes · Affichages: 5

re4

XLDnaute Occasionnel
Pardon de te déranger encore, je suis pris par le temps...
Je n'y comprends rien à cette usine à gaz :)

1 - j'ouvre ton fichier Excel classeur complet V2
2- Data => Obtenir des données =>A partir d'un fichier => A partir d'un dossier
3- Je vais sélectionner le répertoire de tous les fichiers CSV (les nouveaux)
4 - une fenêtre s'ouvre avec Binary et la liste des classeurs, dates, etc..
5 - c'est à partir de la que ça se corse...
6- Suis perdu
7- Heureusement que tu es là
8- Merci
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
avec une fonction personnalisée en Power Query.
Voir PJ

1) Ouvre le fichier, va sur l'onglet "Données" / Requêtes et connexions
2021-04-29_01-51-19.png


2) A droite de l'écran, clic-droit sur la requête "DonnéesImportées" puis Modifier
2021-04-29_01-52-28.png


3) Dans la fenêtre de Power Query, Modifier la source
2021-04-29_01-53-36.png


4) Parcourir le dossier contenant les fichiers txt, puis valider.
2021-04-29_01-55-06.png


5) va sur l'onglet Accueil du Power Query, puis Fermer et Charger.
2021-04-29_01-57-05.png



Cordialement
 

Pièces jointes

  • Re4_PowerQuery_V1.xlsx
    21.6 KB · Affichages: 3

mromain

XLDnaute Barbatruc
Bonjour à tous,

Ci-joint un autre exemple basé sur les fichiers que tu as fourni au post #3. Je les ai juste renommés en .csv.

Il faut :
  • adapter l’emplacement du dossier contenant les fichiers .csv (sur la feuille) ;
  • actualiser la requête (clic droit sur le tableau et Actualiser).

Coté Power Query, il y a :
  • Une fonction Fonction_ExtractionDonnéesFichierCsv permettant d’extraire les données d’un fichier .csv - elle est basé sur la proposition faite dans ton autre fil ;
  • La requête principale Requête_CompilationCsv qui :
    • récupère les fichiers du dossier de stockage ;
    • filtre sur les fichiers de type .csv ;
    • extrait les données de chaque fichier (à l’aide de la fonction Fonction_ExtractionDonnéesFichierCsv) ;
    • concatène l’ensemble des informations.

A+
 

Pièces jointes

  • Exemple_re4.xlsx
    18.1 KB · Affichages: 3

re4

XLDnaute Occasionnel
Bonjour @ tous,
avec une fonction personnalisée en Power Query.
Voir PJ

1) Ouvre le fichier, va sur l'onglet "Données" / Requêtes et connexions
Regarde la pièce jointe 1103847

2) A droite de l'écran, clic-droit sur la requête "DonnéesImportées" puis Modifier
Regarde la pièce jointe 1103848

3) Dans la fenêtre de Power Query, Modifier la source
Regarde la pièce jointe 1103849

4) Parcourir le dossier contenant les fichiers txt, puis valider.
Regarde la pièce jointe 1103850

5) va sur l'onglet Accueil du Power Query, puis Fermer et Charger.
Regarde la pièce jointe 1103851


Cordialement
J'avais pas vu que n'était pas le même auteur, merci aussi
 

Discussions similaires