Format ouverture fichier csv par code vba

Novice avance !?

XLDnaute Occasionnel
bonjour,

j'ai un fichier csv avec un formatage type excel avec les données dans différentes colonnes mais j'ai un souci lorsque je veux ouvrir ce fichier via code vba. Celui-ci perd son formatage et revient à son format initial csv c'est à dire les données séparées par un point-virgule et de plus il change de colonne lorsqu'il y a une virgule dans un nombre décimal.

En ouvrant manuellement le fichier csv il conserve cependant son formatage type excel.


le code ci-dessous testé ne fonctionne pas.
Votre aide serait la bien venue

je mets en pièce jointe le fichier csv tel que je voudrait qu'il s'ouvre même en l'ouvrant via vba.

merci par avance

Code:
Dim Fichier As Variant

Fichier = Application.GetOpenFileName("Tous les fichiers (*.*),*.*")
    If Fichier = False Then Exit Sub
  
    Workbooks.OpenText Filename:=Fichier, _
    DataType:=xlDelimited, TextQualifier:=xlTextQualifierDoubleQuote, _
    Semicolon:=True, comma:=False
 

Pièces jointes

  • test.zip
    261 bytes · Affichages: 27
  • test.zip
    261 bytes · Affichages: 28
  • test.zip
    261 bytes · Affichages: 27

Pierrot93

XLDnaute Barbatruc
Re : Format ouverture fichier csv par code vba

Bonjour,

essaye en renommant ton fichier en .txt... et ta macro devrait fonctionner... sinon pour ouvrir un csv, perso j'utilise un "QueryTable" (importation de données externes, barre de menu => données => Données externes => importer des données), l'enregistreur de macro te fournira le code.

bonne journée
@+
 

MJ13

XLDnaute Barbatruc
Re : Format ouverture fichier csv par code vba

Bonjour Novice, Pierrot


Comme dit Pierrot, les fichiers .CSV c'est une vrai galère en VBA.

Sinon, tu peux tester ce code que j'ai enregisté avec l'enregisteur de macro en renommant le fichier en .txt et adapté en ajoutant local:=true.
Code:
Sub Ouvre_csv()
NomDossier = ThisWorkbook.Path
    Workbooks.OpenText Filename:=NomDossier & "\test.csv", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), _
        TrailingMinusNumbers:=True, local:=True
End Sub

Pour le Query, il faudra que j'essaie :).
 

Discussions similaires

  • Question
Microsoft 365 Import CSV
Réponses
9
Affichages
298
Haut Bas