Bonjour à tous,
Cela fait plusieurs années que je traîne sur le forum, y trouvant fréquemment la réponse à mes questions. Je tiens donc tout d'abord à remercier l'ensemble des membres du forum !
__________
Mon problème :
Je souhaite extraire les données de multiples fichiers csv de format ( A ; 5) avec A identiques pour l'ensemble des fichiers CSV mais variant entre 2000 et 100 000 lignes (selon la source des CSV).
J'utilise pour cela le code VBA suivant :
Ce code me permet d'extraire les données de chaque fichier csv et de les agréger dans l'onglet 1 du fichier "Fichierfinal".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Sub compil_csv() Dim fichier_final, fichier, x, x2, chemin fichier_final = Workbooks("Fichier d'import1").Sheets("Sheet1").Range("B3").Value & "\Fichierfinal.csv" If Dir(fichier_final) <> "" Then Kill fichier_final chemin = ThisWorkbook.Path fichier = Dir(ThisWorkbook.Path & "\*.csv") i = 0 Do x = FreeFile Open chemin & "\" & fichier For Input As #x laChaine = Input(LOF(x), #x) Close #x x2 = FreeFile Open fichier_final For Append As #x2 Print #x2, laChaine Close #x2 i = i + 1 fichier = Dir Loop Until fichier = "" Workbooks.Open fichier_final, local:=True End Sub
L'ensemble des fichiers sont agrégés sur les mêmes colonnes (image du dessous). Si bien que le fichier final agrégé est de taille ( (A+1)*nb fichier ; 5 ). Le +1 correspondant aux lignes vides entre les jeux de données de chaque fichier.
Ci dessous ce que j'arrive à faire actuellement avec ce code :
La première colonne des CSV correspond à la date d'une mesure et la seconde à l'heure. Ces deux colonnes sont identiques pour tous les fichiers csv.
Au lieu que les données importées se succèdent lignes après lignes comme dans l'image ci dessus. Je souhaite que les fichiers CSV importés soient rangés par colonnes comme dans l'image ci dessous :
Mes tentatives jusque là ont été d’essayer de modifier la "print area" et également de fouiller sur le forum ! sans succès.
Je m'en remets donc à votre savoir, merci par avance.
En espérant que ce sujet n'a pas été traité dans un autre thread .. !:)
Partager