séparateur décimal en CSV

  • Initiateur de la discussion ben31
  • Date de début
B

ben31

Guest
Bonjour,
J'utilise Excel 2000 et j'ai un pb avec l'export en CSV quand des cellules contiennent un décimal.
Si j'utilise la commande 'Enregistrer-sous' + format CSV du menu Fichier : tout va bien, mes décimaux sont 'à la française', avec une virgule.
Mais dès que j'utilise la commande SaveAs... FileFormat:=xlCSV, rien ne va plus. Excel retourne 'chez maman' et enregistre les décimaux avec un POINT.
Ya-t-il un moyen de contourner cela en VBA ?
Merci
Ben
 
B

ben31

Guest
Merci de l'intérêt porté à ma question.
J'ai bien fait une recherche préalable sur cette question avant d'envoyer mon post et j'avais téléchargé le zip figurant dans le post qu tu m'indiques. Mais, cela ne répond pas du tout à ma question. Dans ce zip, il convertit à la source des Virgules en points.
Mon pb est différent : je ne trouve aboslument aucun moyen d'enregistrer en CSV ou TXT, avec une macro VBA, des nombres décimaux avec une virgule.
Je sens bien qu'il y a un pb de paramètres linguitiques 'français' non pris en compte.
Mais je ne trouve aucun moyen de les appliquer au sein d'un macro VBA.
La question reste ouverte...
Merci quand-même
Ben
;)
 

Jam

XLDnaute Accro
Re Ben31,

As-tu bien regardé ce que faisait la macro de _Thierry ? Si tu le souhaites, elle te permet d'enregistrer le fichier AVEC une VIRGULE comme séparateur de décimal.

Pour mémoire, un fichier CSV est un bête fichier TEXTE mais qui a pour particularité de présenter les 'enregistrements' sous un format spécifique afin d'être lisible par tous les programmes.

La macro de _Thierry permet de choisir le format d'enregistrement. Il faut juste qu'en lieu et place de ton SaveAs... tu mettes cette procédure (débarrasée du superflu dans ton cas). Et le tour est joué.

PS.: Y'a un p'tit truc qu'il ne faut pas oublier avec XL. Lorsque tu enregistres un fichier XL au format CSV, XL tient compte du format des cellules (par exemple s'il y a un blanc, ou un point entre les miliers, même si c'est visuel, le format CSV d'XL l'utilisera). Le mieux c'est de supprimer tout format avant l'exportation au format CSV.

Bon courage
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ben, MrExcel

Arf comment ça 'Débarrassé du Superflu', nan nan nan On touche pas à mes Démo ! lol D'ailleurs elles ont la certification :

Demo_Certifie.gif


Non je rigole, faites en ce que vous voulez, mais au moins avant de répondre 'cela ne répond pas du tout à ma question'... Essayez là Démo et regardez/analysez la structure des Codes quand même... Car là MrXL a raison, tu as la clef de ton Problème avec cette Démo...

Bon Appétit
@+Thierry
 
B

ben31

Guest
J'ai bien compris le fonctionnement de cette macro : c'est effectivement une solution de contournement : au lieu de faire un simple SaveAS, la boucle crée un fichier texte cellule par cellule.

Mais j'utilise cette fonction au sein d'une macro qui ouvre plein de fichiers différents à la fois, et dont je ne connais pas les limites (dernière colonne et dernière ligne).
Je sais que ce serais faisable, mais s'il y avait une solution plus simple que de réinventer une fonction SaveAs bis, ce serait plus élégant..

Merci
A+
Ben
 
B

ben31

Guest
Le CSV est utilisé pour alimenter une base ORACLE.
La personne chargée de l'import regarde effectivement déjà de son côté s'il y a possibilité de paramétrer le loader ORACLE pour reconnaître le point comme séparateur décimal (uniquement pour ces tables bien sûr).

A+
Ben
 
B

ben31

Guest
Au final, la solution retenue à mon pb est de conserver le point et de traiter le pb au niveau de l'import dans ORACLE.
Merci à tous pour vos idées.
Pour le moment, la seule réponse 'côté Excel' à ce pb semble être celle de Thierry.
A+
Ben
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87