web-dev-qa-db-fra.com

Excel ne respecte pas le paramètre de délimiteur pour la lecture ou l'écriture de fichiers CSV

Lorsque vous enregistrez/ouvrez des fichiers CSV dans Excel, le séparateur par défaut est un point-virgule (;), car j’ai besoin que ce soit une virgule (,). C'est-à-dire Comment faire en sorte qu'Excel interprète la virgule comme un séparateur par défaut dans les fichiers CSV? ).

Cependant, après avoir modifié le séparateur de liste dans ces paramètres, Excel continue de sauvegarder les fichiers CSV avec un point-virgule. Est-ce parce qu'Excel a été installé alors que mon séparateur de liste était défini en tant que point-virgule? ou y a-t-il un autre paramètre qui me manque ici?

Merci d'avance.

20
Sandra

J'ai trouvé le problème. Mon symbole décimal dans les paramètres régionaux était également une virgule (européenne). Ainsi, même lorsque mon séparateur de liste était une virgule, le fichier CSV était enregistré avec des points-virgules. Maintenant, j'ai changé mon symbole décimal en un point et maintenant le fichier CSV est créé correctement avec des virgules comme séparateurs. Je l'ai testé deux fois et je sais maintenant qu'il doit y avoir une exception: si le symbole décimal est une virgule, le séparateur de liste sera un point-virgule et même s'il est défini autrement.

34
Sandra

Pour sauver

Vous devez ajuster le séparateur de liste dans les paramètres de langue et de région avant pour enregistrer le fichier -

enter image description here


Pour ouverture

Aller à Données - Obtenir des données externes - À partir du texte

enter image description here

sélectionner le fichier

Sélectionnez délimité , appuyez sur suivant enter image description here

et sélectionnez le délimiteur virgule

enter image description here

Cliquez sur Terminer

enter image description here


Ou bien, tirez-le et utilisez ensuite du texte pour les colonnes voir ici

5
Raystafarian

Voici une très belle macro qui fonctionne assez bien:

Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub
0
yo_haha