Extractions de données de plusieurs fichiers vers fichier maître

JPrev

XLDnaute Junior
Bonjour,

J'aimerais savoir s'il est possible (en code vba) de créer une macro qui va extraire dans un fichier "maître" toutes les données d'un ensemble de fichiers pour les compiler.

Cas pratique : J'extrais chaque mois une vingtaine de fichiers excel d'un appareil dans lesquels les données qui m'intéressent sont en colonne A (à partir de A9). Je fais donc manuellement un copier/coller...fastidieux.

Quelqu'un pour m'aiguiller? Cela me suffira en cadeau de Noël :).

Cordialement,

JPrev

P.S : Un exemple de fichier utilisé est en PJ
 

Pièces jointes

  • Mesure~S03-01-16-22-27-00~E05-01-16-15-22-10.xlsx
    495.4 KB · Affichages: 41

sousou

XLDnaute Barbatruc
Bonjour
Un exemple pour accumuler tes données dans le fichier mesure ci-joint.
Ne connaissant pas la structure d de tous tes fichiers, ici tu charge un fichier un par un.
Mais il sera facile d'automatiser pour plusieurs fichiers
 

Pièces jointes

  • Mesure.xlsm
    22.6 KB · Affichages: 63

JPrev

XLDnaute Junior
Bonjour,

Merci pour votre réponse tout d'abord :).

Le format des fichiers que j'extrais de mon appareil est le suivant : Fichier CSV Microsoft Excel.

Or, en utilisant votre fichier je ne peux pas les charger :/, y'a-t-il un moyen pour contrer ça?

Cordialement,

JPrev
 

sousou

XLDnaute Barbatruc
bonjour
Le fichier que tu avais fournit, était xlsx.
Il faudrait que tu fournisses le fichier csv afin que je puisse faire une importation correct.

remplace cette ligne ainsi pour voir les fichier autres que excel
fichier = Application.GetOpenFilename(" (*.*), 1")
 

JPrev

XLDnaute Junior
Bonjour,

Tu es excellent, ton code marche bien :) (j'ai remplacé la ligne). Ca "empile" les données sans remettre les données inutiles (tu as vu que les 10 premières lignes n'ajoutaient rien).

Je n'arrive pas à te joindre un fichier CSV exemple...par mail peut-être? Par mois j'en ai une vingtaine comme ça.

Merci vraiment,

JPrev
 

sousou

XLDnaute Barbatruc
Pour joindre un fichier csv tu le zip et tu pourras le joindre
Mais si cela fonctionne comme cela ce n'est peut -être pas utile.
Pour faire tous tes fichiers d'un seul coup il faudrait faire une boucle reprenant le code, mais il faut pour cela connaître la structure de tes fichiers.
(dans un seul répertoire,le nommage...?)
le principe:
for chaque fichier
Set fichier = Workbooks.Open(fichier)
Call copiedonnees(fichier)
next
End Sub
 

JPrev

XLDnaute Junior
En effet, l'idéal serait qu'en appuyant sur le bouton ça fasse la même chose pour tous les fichiers!

Regarde la photo, je colle tous mes fichiers du mois correspondant dans un répertoire qui s'appelle "Mois Année" (sachant que je peux en créer un qui soit fixe et qui me permette de faire tourner la macro pour ranger les fichiers ensuite).

Par contre je n'ai pas très bien saisi le principe de ta boucle :/

Cordialement,

JPrev
 

Pièces jointes

  • Screenshot dossier eaux de rejet.png
    Screenshot dossier eaux de rejet.png
    163.2 KB · Affichages: 48

sousou

XLDnaute Barbatruc
bonsoir
Dans la solution ci-joint.
Tu positionnes le fichier dans un répertoire (ici mesure), et tu ranges tous tes dossiers mensuel dans ce même répertoire.
Mais tu peux imaginer un autre positionnement...

La conversion csv est ici faite avec un ; (semicolon), tu peux modifier en fonction du contenu réel de ton fichier csv ("," ou "." .....
 

Pièces jointes

  • Mesure.xlsm
    289.2 KB · Affichages: 62

sousou

XLDnaute Barbatruc
Bonjour
La partie mise en commentaire n'est plus utile.
Tu remarqueras que le début de procédure insertion ce trouve en haut de la page du module1
le programme se positionne et te propose de choisir un dossier (msofiledialogfolder).
N'oublie pas que j'ai créé un répertoire 'mesure' dans le répertoire du fichier.
Avec ce choix, le programme va voir tous les fichiers csv contenu dans le répertoire que tu à sélectionner.
Puis il fait le travail.
L'image jointe te montre la configuration des dossiers
Un répertoire mesure
dedans le fichier mesure.xlsm, et un ou des répertoires ici(décembre 2016) contenant les fichiers csv
 

Pièces jointes

  • rep.jpg
    rep.jpg
    152.5 KB · Affichages: 42

JPrev

XLDnaute Junior
Je n'avais pas compris!

J'ai placé du coup dans les bons répertoires les fichiers. Alors ça marche, mais :

- Je retrouve des données des autres mois alors que j'ai pris pour exemple mes fichiers de novembre 2016 (d'où peuvent-ils venir?)
- La conversion des données en plusieurs colonnes n'a pas séparé la date et l'heure
- Je dois cliquer sur OK pour chaque fichier qu'il ajoute

Sinon, vraiment c'est pas mal!!! Penses-tu qu'on puisse régler les problèmes ci-dessus?

Merci,

JPrev
 

Pièces jointes

  • screen excel download.png
    screen excel download.png
    77.6 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T