Bonsoir,

En tant que grand débutant, je cherchais le code d'une macro qui me permette de réaliser la même action que dans cette discussion

Par contre lorsque je la lance, seule la premiere colonne de mon CSV est importé dans mon xls...sauriez-vous comment importer 'l'ensemble des colonnes du CSV (séparé par des ",") tout en conservant la même action qu'actuellement ???

Merci par avance pour votre aide.

En parcourant le forum, je viens de trouver comment contourner... : renommer mes CSV en .txt et :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 & "*.txt")                       '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 If
End Sub

Par contre, maintenant je ne sais pas trop comment implémenter une fonction qui me permette de renommer tous les fichier .csv en .txt au préalable...