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 40 41 42 43 44 45
| Sub csvImport4()
Dim Wbcsv As Workbook
Dim Fichier As String, Chemin 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
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
If .SelectedItems.Count = 1 Then Chemin = .SelectedItems(1)
End With
If Chemin <> "" Then
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")
Fichier = Replace(Fichier, ".csv", ".txt")
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("fichier")
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
Set Wbcsv = Nothing
Name Chemin & Fichier As Replace(Chemin & Fichier, ".txt", ".csv")
Dim cellule As Range
For Each cellule In Range("D11:D370")
cellule.Value = CDbl(cellule.Value)
Next
Fichier = Dir() 'on cherche le fichir csv suivant
Loop
End If
End Sub |
Partager