Bonjour,

Comme indiqué dans le titre je souhaite changer le séparateur de données de mon fichier CSV.

Jusqu'à maintenant je faisais l'action manuellement, c'est-à-dire : en allant dans l'onglet Données --> Données externes -> Fichier texte --> je sélectionne mon fichier CSV --> et je coche le séparateur virgule --> terminer.


De base le fichier CSV est de ce format (aperçu de données) :
Nom : avant_separateur.png
Affichages : 304
Taille : 12,7 Ko

Quand je fais la manipulation décrite ci-dessus et que je fais terminer voici ce qu'on obtient (aperçu de données) :

Nom : apres_separateur.png
Affichages : 304
Taille : 12,7 Ko


J'ai utilisé l'enregistreur de macro pour voir si je pouvais faire les étapes d'en haut- et je l'ai adapté en rajoutant le chemin du fichier CSV.

Voici le code obtenu :

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
Sub changer_separateur_CSV()
Dim Chemin As String
 
    Chemin = ActiveWorkbook.FullName
 
 
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;Chemin" _
        , Destination:=Range("$A$1"))
        .Name = "csv_test_macro"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
        , 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Mais ça ne fonctionne pas voici l'erreur affichée :
Nom : erreur_code.PNG
Affichages : 256
Taille : 9,8 Ko

Et le code bug a cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.Refresh BackgroundQuery:=False
Si quelqu'un a une solution, je suis preneur.

Bonne journée à tous !