et une dernière j'avais oublié de réinitialiser la variable texte ce qui avait pour conséquence un répétition
voila maintenant c'est Nikel
avec cette méthode tu ouvre le fichier en format texte et en mémoire c'est pour cela que c'est plus rapide
Code:
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
27
28
29
30 Sub compil_csv() Dim fichier_final, fichier, x, x2, chemin fichier_final = "C:\Users\" & Environ("UserName") & "\Desktop\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 old_fichier = fichier tabl = Split(laChaine, vbCrLf) f1 = Split(tabl(0), ";")(5) If i = 0 Then texte = texte & tabl(1) & ";cellule F1" & vbCrLf For i = 2 To UBound(tabl) texte = texte & tabl(i) & IIf(tabl(i) <> "", ";" & f1 & vbCrLf, "") Next x2 = FreeFile Open fichier_final For Append As #x2 Print #x, texte Close #x i = i + 1: texte = "" fichier = Dir Loop Until fichier = "" Workbooks.Open fichier_final, local:=True End Sub