VBA - Enregistrer csv avec séparateur point-virgule

Bonjour,

Je souhaite enregistrer un fichier csv avec séparateur point-virgule. J'ai mis le code ci dessous mais lorsque je fais des tests j'ai toujours un fichier avec comme séparateur une virgule. J'ai regardé beaucoup de forums et je ne comprends toujours pas pourquoi je n'y arrive pas. Pouvez-vous m'aider?

J'ai bien comme paramètre un ";" comme séparation de liste dans panneau de configuration.

    Dim Maintenant As Date
    Maintenant = Now()

Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\test\" & "bon_test_" & Format(Maintenant, "yyyymmddhhmm") & ".csv", _
    FileFormat:=xlCSV, Local:=True

Merci d'avance

Agrimaman

Bonjour,

À une ligne près > ton code fonctionne bien ici ...

la ligne en trop est : Workbooks.Add

Si j'enlève cette ligne > le fichier .csv est bien créé avec le " ; " en tant que séparateur ...

ric

ric

Bonjour Ric,

Le workbooks.add j'en ai besoin car je dois un nouveau fichier dans lequel je colle des données, et justement, que j'enregistre en csv.

Pourquoi c'est bloquant?

Bonjour,

Sur ma machine > j'ai ce comportement ...

Workbooks.Add > ceci ajoute un nouveau fichier excel

Puis ce nouveau fichier vide est enregistrer-sous > ActiveWorkbook.SaveAs > ça donne un fichier.csv vide ...

Cela ne règle pas ton souci de départ ...

Si tu exportes manuellement une plage vers un fichier .csv > quel est le séparateur de liste ?

ric

Bonjour,

Quand j'enregistre manuellement en .csv (séparateur : point-virgule), j'ai bien des points virgule en séparateur de colonne.

Agrimaman

Bonjour,

Essai avec CSV en UTF8

xlCSVUTF8

Dim Maintenant As Date 
Maintenant = Now() 
Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\test\" & "bon_test_" & Format(Maintenant, "yyyymmddhhmm") & ".csv", _ FileFormat:=xlCSVUTF8, Local:=True

ric

Re

Hélas j'ai toujours la même chose.

Franchement j'ai du mal à comprendre... Je vais essayé de continuer à chercher.

Merci tout de même

Bonjour à tous, chez moi l'enregistreur macro ne me donne pas l'option Local=true à la fin

FileFormat:=xlCSV, _
        CreateBackup:=False

Mais pour le "Workbooks.Add" à l'endroit ou il est je suis comme Ric comprends pas ce qu'il vient faire ... ou alors il manque de nombreuse ligne avant l'export en csv ?

Bonjour,

Oui il manquait beaucoup de lignes. Entre temps j'ai trouvé une solution mais je ne sais pas pourquoi ça a marché.

Peut être aurait elle été trouvée si seulement je vous avais mis le code en entier, et je m'en excuse mais sachant qu'il y a des données confidentielles, j'ai souvent peur que dans le code, trainent des notions/mots que je ne dois pas indiquer à tout public.

Sinon voici la solution à ma problématique:

- L'objectif de la macro était de copier des données d'un fichier initial excel vers un fichier final, qui sera enregistré en csv.

- Dans mon code initial, j’enregistrais le fichier final en csv dés le départ et après je copiais des valeurs dedans.
Et là je me rendais compte que toujours le fichier était enregistré en séparateur virgule.

- Finalement je n'ai décidé de mettre l'enregistrement csv qu'à la fin de la macro, quand tous les copier-coller ont été fait.
Et là seulement le fichier a été enregistré en csv avec un séparateur point-virgule.

Merci à vous deux deux pour avoir répondu à ma demande.

Agrimaman.

Bonjour à tous,

Merci pour le suivi ...

ric

Rechercher des sujets similaires à "vba enregistrer csv separateur point virgule"