Ouvrir un fichier csv

Bonjour,

Je souhaite copier / coller les données d'un fichier .csv vers un fichier excel .xlsm. Voici mon code initial :

Sub ouverture()
Dim nom_chemin As String
nom_chemin = "C:\Users\moi\Documents\resultats.csv"
Workbooks.Open (nom_chemin)
Workbooks("resultats.csv").Worksheets("Feuil1").Range("A1").Copy
End Sub

Lorsque je colle dans mon fichier de destination, A1 contient plein de données avec des points-virgules.

Lorsque j'ouvre le fichier .csv moi-même, les colonnes sont bien distinguées :

image

Alors qu'avec la macro, il s'ouvre ainsi :

image

J'ai ensuite tenté :

Sub ouverture()
Dim nom_chemin As String
nom_chemin = "C:\Users\moi\Documents\resultats.csv"
Workbooks.OpenText Filename:=nom_chemin, StartRow:=1, _
    DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter _
        :=False, Semicolon:=True, DecimalSeparator:="."
Workbooks("resultats.csv").Worksheets("Feuil1").Range("A1").Copy
End Sub

Même résultat...

Comment faire ? A terme je souhaite pouvoir copier coller le tout et refermer le fichier csv.

Merci

Bonjour,

Il existe des outils plus modernes, pratiques et rapides que le VBA pour importer des CSV dans Excel.

Onglet données > importer > depuis fichier (txt/csv) et laissez-vous guider.

Bonjour,

Merci pour la réponse. Oui je sais ouvrir un fichier csv via Excel pour que les données s'affichent correctement.

Ma demande ne concerne que la première partie de mon projet, qui consiste à importer et traiter de manière bien spécifique et automatique les données récupérées. Je souhaite faire cela en VBA.

Est-ce que quelqu'un a une idée ? Merci !

bonjou matteo_loti, salut saboh12617,

Vous utilisez l'enregistreur des macros et vous faites la manipulation complète.

Puis vous adaptez cette macro et fini.

Donc, faites-cela et montrez la macro ici ... (éventuellement avec votre CSV-anonymisé)

Oubien une solution avec PQ (pas dans mes capacités)

Voici ce qui fonctionne.

Je ne comprends pas bien pourquoi il est nécessaire de préciser Local :=True. La vidéo qui m'a aidé pour rédiger ce code s'en passait.

A lire les arguments d'OpenText sur le site de Microsoft, je pensais que DataType et Semicolon suffisaient. Est-ce que quelqu'un a une explication ?

Sub ouverture()

Dim chemin As String
Dim wb As Workbook
Dim cellule_ou_coller As Range

chemin = "C:\Users\User\Documents\resultats_D9A.csv"

Set cellule_ou_coller = ThisWorkbook.Worksheets(1).Range("A1")

Application.ScreenUpdating = False

Workbooks.OpenText _
            Filename:=chemin, _
            StartRow:=1, _
            DataType:=xlDelimited, _
            Semicolon:=True, _
            Local:=True 'pas compris pourquoi mais sinon n'applique pas le séparateur ";"

Set wb = ActiveWorkbook

wb.Worksheets(1).Range("A1").CurrentRegion.Copy cellule_ou_coller

wb.Close False

Application.ScreenUpdating = True

End Sub
Rechercher des sujets similaires à "ouvrir fichier csv"