Sub Consolider_CSV()
Dim chemin$, fichier$, a$(), n&, x%, texte$, nn&
chemin = ThisWorkbook.Path & Application.PathSeparator
fichier = Dir(chemin)
ReDim a(1 To Rows.Count, 1 To 1)
While fichier <> ""
If Right(fichier, 4) = ".csv" Then
n = n + 1
x = FreeFile
Open chemin & fichier For Input As #x 'accès en lecture séquentielle
Line Input #x, texte
If nn = 0 Then nn = 1: a(1, 1) = texte & ";Fichier CSV" 'récupère la ligne de titre
While Not EOF(1) 'EndOfFile : fin du fichier
nn = nn + 1
Line Input #x, texte 'récupère la ligne
a(nn, 1) = texte & ";" & fichier
Wend
Close #x
End If
fichier = Dir
Wend
'---restitution---
Application.ScreenUpdating = False
With Feuil1 'CodeName, à adapter
.Cells.Clear 'RAZ
If nn Then
With .[A1].Resize(nn)
.Value = a
.TextToColumns [A1], xlDelimited, Semicolon:=True 'commande Convertir
End With
.Rows(1).Font.Bold = True 'gras
.Columns.AutoFit 'ajustement largeurs
End If
With .UsedRange: End With 'actualise les barres de défilement
End With
Application.ScreenUpdating = True
If n Then MsgBox n & " fichier" & IIf(n > 1, "s", "") & " CSV consolidé" & IIf(n > 1, "s...", "...")
End Sub