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 31 32 33 34 35 36 37 38 39
|
Sub csvImport5()
Dim Fichier As String, Chemin As String, RepArchive As String
Dim LastLig As Long, NewLig As Long
Dim Wbcsv As Workbook
Dim c As Range
Dim Tablo
Application.ScreenUpdating = False 'Inhibe le rafraichissement affichage
With Application.FileDialog(msoFileDialogFolderPicker) 'Ouvre la boite de dialogue pour sélection de dosiier
.Show
If .SelectedItems.Count = 1 Then Chemin = .SelectedItems(1)
End With
If Chemin <> "" Then
RepArchive = "C:\Users\user\Desktop\CSV\Archives\"
Chemin = Chemin & "\"
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
Name Chemin & Fichier As Replace(Chemin & Fichier, ".csv", ".txt") 'On renomme le csv en txt
Fichier = Replace(Fichier, ".csv", ".txt") 'On remplace l'extension dans notre variable
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, ",") 'On sépare les données par rapport au séparateur (ICI LA 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
Set Wbcsv = Nothing 'On libère la variable
Name Chemin & Fichier As Replace(RepArchive & Fichier, ".txt", ".csv") 'On re modifie l'extension et le répertoire de notre fichier
Fichier = Dir() 'On cherche le fichir csv suivant
Loop 'On reboucle
End If
End Sub |
Partager