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
| Sub csvImport()
Dim Wbcsv As Workbook
Dim Chemin As String, Fichier As String
Dim LastLig As Long, NewLig As Long
Dim c As Range
Dim Tablo
Const Sep As String = ";"
Application.ScreenUpdating = False 'Inhibe la mise à jour affichage
Chemin = ThisWorkbook.Path & "\" 'Chemin du dossier où chercher les fichiers csv (Ici ce classeur se trouve dans ce même dossier, sinon on peut êcrire ici le chemin du dossier
Fichier = Dir(Chemin & "*.csv") 'Le premier fichier csv trouvé
Do While Fichier <> "" 'on fait une boucle jusqu'à ce qu'on ne trouve plus de fichier csv
Set Wbcsv = Workbooks.Open(Chemin & Fichier) 'On ouvre le fichier csv qu'on affecte à la variable Wbcsv
With Wbcsv.Sheets(1)
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row 'LastLig est la dernière ligne remplie du fichier csv ouvert
End With
With ThisWorkbook.Worksheets("Feuil1")
For Each c In Wbcsv.Sheets(1).Range("A2:A" & LastLig) 'Pour chaque cellule de A2:Axxx
NewLig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 'la première cellule vide de la colonne 1 de Feuil1 de ce classeur
Tablo = Split(c.Value, Sep) 'On sépare les données par rapport au séparateur (ici le point virgule)
.Range(.Cells(NewLig, 1), .Cells(NewLig, UBound(Tablo) + 1)).Value = Tablo 'on copie
Next c
End With
Wbcsv.Close 'On ferme le fichier csv
Fichier = Dir() 'on cherche le fichir csv suivant
Loop 'on reboucle
End Sub |
Partager