Private Sub CommandButton1_Click()
Dim Fso As Object, Sourcefile As Object
Dim Rep As String, Fic As String
Dim Target As Range
Dim Tbl
Rep = "Dossier des fichiers Csv"
Fic = Dir(Rep)
Set Fso = CreateObject("Scripting.FileSystemObject")
Do While Fic <> ""
ActiveSheet.Columns("A:E").Clear
Set Target = ActiveSheet.[A1]
Set Sourcefile = Fso.OpenTextFile(Rep & Fic, 1)
Do While Not Sourcefile.AtEndOfStream
Tbl = Split(Replace(Sourcefile.readline, """", ""), ";")
Target.Resize(, UBound(Tbl) + 1) = Tbl
Set Target =...
Combine CSV files in Power Query - Power Query
How to combine CSV files in Power Query and Power Query Onlinedocs.microsoft.com
Private Sub CommandButton1_Click()
Dim chemin$, fichier$, ncol%, resu(), num&, lig&, x, texte, n&, s, ub%, col%, xx
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "*.csv")
ncol = 5 '5 colonnes
ReDim resu(1 To Rows.Count, 1 To ncol)
While fichier <> ""
num = num + 1
lig = 0
x = FreeFile
Open chemin & fichier For Input As #x 'lecture séquentielle du fichier CSV
While Not EOF(1) 'EndOfFile: fin du fichier
lig = lig + 1
Line Input #x, texte 'récupère la ligne
If num = 1 And lig = 1 Or lig > 1 Then 'les en-têtes ne sont copiées qu'une fois
s = Split(texte, ";")
ub = IIf(UBound(s) < ncol - 1, UBound(s), ncol - 1)
n = n + 1
For col = 1 To ub + 1
xx = s(col - 1)
If col = 4 Then If IsDate(xx) Then xx = CDate(xx)
resu(n, col) = xx
Next col
End If
Wend
Close #x 'fermeture du fichier CSV
fichier = Dir
Wend
'---restitition---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A1] '1ère cellule de destination, à adapter
.Resize(n, ncol) = resu
.Offset(n).Resize(Rows.Count - n - .Row + 1, ncol).ClearContents 'RAZ en dessous
End With
Columns(1).Resize(, ncol).AutoFit 'ajustemrnt largeurs
End Sub
Private Sub CommandButton1_Click()
Dim Fso As Object, Sourcefile As Object
Dim Rep As String, Fic As String
Dim Target As Range
Dim Tbl
Rep = "Dossier des fichiers Csv"
Fic = Dir(Rep)
Set Fso = CreateObject("Scripting.FileSystemObject")
Do While Fic <> ""
ActiveSheet.Columns("A:E").Clear
Set Target = ActiveSheet.[A1]
Set Sourcefile = Fso.OpenTextFile(Rep & Fic, 1)
Do While Not Sourcefile.AtEndOfStream
Tbl = Split(Replace(Sourcefile.readline, """", ""), ";")
Target.Resize(, UBound(Tbl) + 1) = Tbl
Set Target = Target.Offset(1)
Loop
Sourcefile.Close
Set Sourcefile = Nothing
ActiveSheet.Columns.AutoFit
MsgBox Fic & vbLf & " A traiter"
Stop ' ci_dessous tout le traitement à faire
......
Fic = Dir
Loop
Set Fso = Nothing
End Sub
bonjour et pourquoi ne pas traiter tout les csv d'un coup après les avoir cumuléJe te remercie job75, cependant j'ai du mal m'expliquer et je m'en excuse, je cherche a ouvrir les fichier csv 1 par 1 pour que chaque fichier soit traiter par une macro puis il ferme le fichier passe au suivant, et ainsi de suite.
Merci