Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fichier excel csv avec ; comme séparateur

3 réponses
Avatar
---DGI972---
Bonjour,

Je suis tombé sur un os: je veux ouvrir un fichier excel puis
l'enregistrer en csv mais avec un ; comme sépararateur et non une ,

voici un extrait de mon bout de code:

Set objXLA = CreateObject("Excel.Application")
objXLA.Visible = False
objXLA.Workbooks.Open(fichXLS)
Dim objXWB
Set objXWB = objXLA.ActiveWorkbook
objXWB.SaveAs Fcsv, 6
Set objXWB = Nothing
objXLA.Application.DisplayAlerts = False
objXLA.Quit
Set objXLA = Nothing

J'ai déjà bien bourlingué sur google et autre et il parle d'enregistrer
le fichier csv selon les paramètres régionaux mais cela ne marche pas
non plus.

C'est dingue car la ligne dans excel enregistrer sous avec séparateur ;
existe dans excel non ?

J'ai l'impression qu'il n'y a pas de solution les options de saveas
d'excel ...

3 réponses

Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| Je suis tombé sur un os: je veux ouvrir un fichier excel puis
| l'enregistrer en csv mais avec un ; comme sépararateur et non une ,
[...]

Excel utilise par défaut la virgule comme séparateur de listes lors de
l'enregistrement au format CSV. Cela permet un comportement identique
quelque soit la locale utilisée. Toutefois il est possible de forcer
Excel à utiliser le séparateur de listes défini dans les options
régionales et linguistiques en fixant la propriété Local de la méthode
SaveAs à True :

objXWB.Application.DisplayAlertsúlse
objXWB.SaveAs Fcsv,6,,,,,,,,,,True

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
---DGI972---
Après mûre réflexion, Gilles LAURENT [MVP] a écrit :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
Bonjour,



Bonjour,

Je suis tombé sur un os: je veux ouvrir un fichier excel puis
l'enregistrer en csv mais avec un ; comme sépararateur et non une ,


[...]

Excel utilise par défaut la virgule comme séparateur de listes lors de
l'enregistrement au format CSV. Cela permet un comportement identique
quelque soit la locale utilisée. Toutefois il est possible de forcer
Excel à utiliser le séparateur de listes défini dans les options
régionales et linguistiques en fixant la propriété Local de la méthode
SaveAs à True :

objXWB.Application.DisplayAlertsúlse
objXWB.SaveAs Fcsv,6,,,,,,,,,,True



Que dire ....

Le coup des six , aprés le saveas, il fallait le savoir ...
L'avantage des ; par rapport aux virgules c'est que en double cliquant
sur le fichier csv (avec ;) excel s'ouvre automatique et les champs
sont dans des colonnes tandis que avec la virgule il faut passer par
fichier ouvrir et utiliser le mode import d'excel, beaucoup moins
pratique.

merci merci merci
Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
|| objXWB.Application.DisplayAlertsúlse
|| objXWB.SaveAs Fcsv,6,,,,,,,,,,True
| Le coup des six , aprés le saveas, il fallait le savoir ...

:-)

En complément d'information :

A la différence de VBA, VBScript ne supporte pas le passage des
arguments "par nom" mais uniquement "par position". Il est donc de ce
fait nécessaire de spécifier tous les arguments, même ceux marqués comme
optionnels, lorsque l'on souhaite spécifier un argument qui précède un
argument optionnel non défini explicitement. Ci-dessous le prototype de
la méthode SaveAs de l'objet Workbook :

Workbook.SaveAs Method :
http://msdn.microsoft.com/en-us/library/bb214129.aspx

Pour reprendre votre exemple :

En VBA ( passage des arguments "par nom" )
objXWB.SaveAs Filename:üsv, FileFormat:=xlCSV, Local:=True

En VBScript ( passage des arguments "par position" : Localème )
objXWB.SaveAs Fcsv,6,,,,,,,,,,True

| merci merci merci

PS D:Test> (1..3) | % {"de rien"}

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr