Bonjour à tous,
Je suis un très grand débutant en VBA. Je chercher a créer une macro qui me permettrait d'extraire une seule colonne de mon choix d'un fichier csv, de la copier de la coller dans le fichier excel exécutant la macro.
J'ai déjà trouvé un code semblable au mien avec des fonctions en trop. Du coup je n'ai pas besoin d'utiliser tout les fichiers csv contenus dans mon dossier, mais uniquement d'en sélectionner un. Je pense pouvoir réussir à faire ça en continuant mes recherches, j'aurais juste besoin de savoir comment supprimer la boucle proprement.

Du coup le but du code serait de choisir délimiter le tableau, cependant en modifiant le code je n'arrive pas à choisir la colonne que je veux copier et ou je veux la coller. En effet je comprend grossièrement le code mais pas suffisamment pour le modifier correctement et proprement.
Si vous pouviez me guider un petit peu ça serait super sympa, Merci d'avance !


Code qui fonctionne :
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
35
36
37
38
Private Sub CommandButton4_Click()
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("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) - 8)).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")
        Fichier = Dir()                                              'on cherche le fichir csv suivant
    Loop                                                             'on reboucle
End If
End Sub