Probleme sur macro access pour importer fichier CSV
Bonjour,
j'ai un fichier excel qui dispose d'une macro pour importer un fichier CSV et en copier les données, j'ai trouvé un très bon code sur ce site pour pouvoir le faire.
Toutefois ce code, après avoir splité les données du CSV sur le fichier source ne copie que la première colonne sur mon fichier cible et pas toutes les autres colonnes du CSV file.
Une adaptation est-elle à fournir au code ou quelque chose à modifier ? Je suis preneur de tout conseil.
Code:
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
| Sub csvImport()
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
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("FFPOS")
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 If
End Sub |
Si je n'ai pas été clair, merci de m'en faire part j'essayerais de donner le plus de détails possibles.