OVH Cloud OVH Cloud

Fichier csv

12 réponses
Avatar
khinoa
Bonjour à tous,

J'utilise Excel 2002 et le séparateur de listes est bien le point-virgule
dans les paramètres du PC (Options régionales, Nombres).
J'utilise également le paramètre Local:= True dans l'instruction suivante

wks.SaveAs FileName:="C:\TOTO\" & fichier & ".csv", FileFormat:=xlCSV,
local:=True

Pourtant à l'ouverture du fichier "fichier.csv" le séparateur est la
virgule.

Quelqu'un aurait-il une solution à ce problème?

D'avance merci

khinoa

10 réponses

1 2
Avatar
lSteph
Bonjour,

remplace xlCSV par xlCSVWindows

Cdlt.


lSteph

Bonjour à tous,

J'utilise Excel 2002 et le séparateur de listes est bien le point-virgule
dans les paramètres du PC (Options régionales, Nombres).
J'utilise également le paramètre Local:= True dans l'instruction suivante

wks.SaveAs FileName:="C:TOTO" & fichier & ".csv", FileFormat:=xlCSV,
local:=True

Pourtant à l'ouverture du fichier "fichier.csv" le séparateur est la virgule.

Quelqu'un aurait-il une solution à ce problème?

D'avance merci

khinoa


--
- -

Avatar
khinoa
Bonjour ISteph,

remplace xlCSV par xlCSVWindows


Même ainsi, pas de changement, toujours la virgule.

Merci quand même

khinoa

Avatar
Garette
Bonjour,

J'arrive partiellement à reproduire ton problème ...
Peux tu essayer ceci ?

Sub FichierCSV()
X = "test"
ActiveWorkbook.SaveAs Filename:="C:TOTO" & X & ".csv", FileFormat:=xlCSV,
local:=True
ActiveWorkbook.Close SaveChanges:úlse
End Sub
Avatar
khinoa
Bonjour Garette,


Oui j'ai essayé mais avec SaveChanges:úlse le classeur est vide, et les
données copiées ont forcément disparu.

Problème ardu.

A +
Avatar
lSteph
...comment ouvres tu le fichier CSV
si tu doubles clique dessus depuis mes documents récents
ou l'ouvres avec excel il est redistribué théoriquement sans virgules
ni points-virgules
si tu l'ouvres en faisant clic droit ouvrir avec le bloc note
là on voit normalement la différence entre xlCSV et xlCSVWindows
dans le 1er cas c'est virgule dans le second c'est point-virgule.
(du moins chez moi , selon le contexte que tu as décrit)

A cette différence près que pour la macro je procède ainsi:
ActiveWorkbook.SaveAs Filename:= _
"C:toto.csv", FileFormat:= _
xlCSVWindows, CreateBackup:úlse

@+
lSteph

khinoa avait prétendu :
Bonjour ISteph,

remplace xlCSV par xlCSVWindows


Même ainsi, pas de changement, toujours la virgule.

Merci quand même

khinoa


--
- -


Avatar
Garette
Re-Bonjour,

Ah ?!
Chez moi, le fichier CSV est tout bon et tout plein en utilisant cette macro
... C'est un premier problème à élucider.
Le SaveChanges:úlse ça permet de répondre "non" à la question un peu
tordue qu'Excel pose quand on enregistre manuellement.
En l'occurrence, je reproduit ton problème si je mets SaveChanges:=true

As-tu bien testé juste le bout de code donné ?
Au passage, il n'est pas nécessaire de mettre l'extension CSV, Excel le fait
(cf ci-dessous)

Sub FichierCSV2()
X = "test"
ActiveWorkbook.SaveAs Filename:="C:TOTO" & X, FileFormat:=xlCSV,
local:=True
ActiveWorkbook.Close SaveChanges:úlse
End Sub

Pour être sur, voici ce que je fais :
- Classeur.xls
- des données diverses de A1 jusqu'à F400
- je lance la macro FichierCSV2() ci-dessus
- j'ouvre le fichier test.csv dans le dossier TOTO avec le blocnote
- je vois les ";" comme séparateur

Ma config :
XP SP2
XL 2002 SP3
Séparateur Dec = ,
Séparateur Milliers = espace
Séparateur Liste = ;
Dans Outils/Options/International "Utiliser les séparateurs système" est
coché et en grisé je vois bien une virgule

Eventuellement essaye de faire ce test ...
Avatar
Garette
Pour ma part, le xlCSV ou xlCSVWindows, c'est pareil.
Ce qui est determinant c'est : local:=True
True me donne ;
False me donne ,

Et bien sur le SaveChanges:úlse dont j'ai parlé précédement.
Si il est True ca me donne ,

On n'est pas égaux devant le CSV ;-)
Avatar
khinoa
Bonjour Garette,

Oui tu as raison, dans le bloc-notes il y a bien comme séparateur le
point-virgule, mais pourquoi n'est-ce pas visible dans Excel ?
J'ai réussi à afficher dans Excel et dans une seule colonne des données
initialement réparties sur plusieurs colonnes (avec le code initial indiqué
en début de post) mais le séparateur était toujours la virgule, il semble
qu'il ne soit pas possible d'avoir le même résultat avec le point-virgule.
C'était pourtant ce que je voulais.

Il semble plutôt qu'il faille absolument passer par le bloc-notes pour voir
s'afficher les données séparées par le point-virgule.

Quand penses-tu ? S'il n'y a que ce moyen, je passerai par le bloc-notes.

khinoa
Avatar
Garette
En fait, Excel reconnait un fichier .CSV et essaye de l'ouvrir en utilisant
le séparateur de liste parmetré dans Windows.
Si tu ne veaux pas que les données soient ventilées dans les cellules, tu
peut renommer ton fichier.
En Toto.xxx par exemple.
Là XL va proposer de le convertir (en faisant Fichier/ouvrir) et tu peux lui
dire de tout laisser dans la 1ere colonne.

Mais si tu veux tout mettre dans une colonne avec des ; il vaut peut etre
mieux utiliser :
¡&";"&B1&";"&C1 etc ...

Que veux tu faire en fait ?
Avatar
lSteph
..voir réponse 12:18
C'est effectivement la raison, excel décompacte, c'est normal!

CDlt.

lSteph
khinoa vient de nous annoncer :
Bonjour Garette,

Oui tu as raison, dans le bloc-notes il y a bien comme séparateur le
point-virgule, mais pourquoi n'est-ce pas visible dans Excel ?
J'ai réussi à afficher dans Excel et dans une seule colonne des données
initialement réparties sur plusieurs colonnes (avec le code initial indiqué
en début de post) mais le séparateur était toujours la virgule, il semble
qu'il ne soit pas possible d'avoir le même résultat avec le point-virgule.
C'était pourtant ce que je voulais.

Il semble plutôt qu'il faille absolument passer par le bloc-notes pour voir
s'afficher les données séparées par le point-virgule.

Quand penses-tu ? S'il n'y a que ce moyen, je passerai par le bloc-notes.

khinoa


--
- -

1 2