Sub ImportCSV()
Dim s, mini&, maxi&, lig&, chemin$, fichier$, t, n&, ncol%, i&, j%
s = Split(InputBox("Entrez les 2 dates jj/mm/aaaa jj/mm/aaaa :"))
If UBound(s) < 1 Then Exit Sub
If Not IsDate(s(0)) Or Not IsDate(s(1)) Then Exit Sub
mini = IIf(CDate(s(0)) < CDate(s(1)), CDate(s(0)), CDate(s(1)))
maxi = IIf(CDate(s(0)) > CDate(s(1)), CDate(s(0)), CDate(s(1)))
lig = 2 '1ère ligne à remplir
Application.ScreenUpdating = False
With Feuil1 'CodeName
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
.Rows("2:" & .Rows.Count).ClearContents 'RAZ
chemin = ThisWorkbook.Path & "\" 'chemin à adapter
fichier = Dir(chemin & "*.csv") '1er fichier du dossier
While fichier <> ""
'---analyse du fichier csv---
Workbooks.OpenText chemin & fichier, Local:=True
t = ActiveWorkbook.Sheets(1).[A1].CurrentRegion
n = 0
If IsArray(t) Then
ncol = UBound(t, 2)
For i = 2 To UBound(t)
If IsDate(t(i, 1)) Then
If t(i, 1) >= mini And t(i, 1) <= maxi Then
n = n + 1
For j = 1 To ncol
t(n, j) = t(i, j)
Next
End If
End If
Next
End If
ActiveWorkbook.Close
'---restitution---
If n Then
.Cells(lig, 1).Resize(n, ncol) = t
.Cells(lig, ncol + 1).Resize(n) = "Fichier " & fichier
lig = lig + n
End If
fichier = Dir 'fichier suivant
Wend
.Columns.AutoFit 'ajustement largeur
With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub