Enregistre en csv ; avec une macro excel

bounette Messages postés 37 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 4 mars 2015 - 22 déc. 2005 à 11:16
bounette Messages postés 37 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 4 mars 2015 - 25 déc. 2005 à 21:48
Bonjours,
Je me permet de solliciter vos compétences en VBA.

Je travail sous office 2000

Si enregistre une feuille Excel en csv (;)en utilisant la méthode normal ( Fichier , enregistrer sous ….) j'obtiens bien un fichier du style 12;56;45 .

Avec l'enregistreur de macro j'ai sauvé cette méthode sous le non de macro 1

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 10/12/2005 par user
'

'
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\user\Mes documents\Essai\Classeur2.csv", FileFormat _
:=xlCSV, CreateBackup:=False
End Sub

A présent si j'utilise cette macro 1 je n'ai pas de ; (point virgule) mais de , ( virgule) 12,56,45.

Connaissez-vous la raison et existe t-il une solution à ce problème
Merci d'avance pour vos réponses
Je vous prie de m'excuser pour mon orthographe

3 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
22 déc. 2005 à 17:08
Salut, chez moi ça me met des point-virgules mais j'ai déjà vu le même prob que toi. Ca vient peut-être des paramètres régionaux. En tous cas, voilà une URL qui apporte une solution, à tester :

http://frederic.sigonneau.free.fr/code/Formats/EnregistrerFeuilleFormatCSV.txt

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
23 déc. 2005 à 14:01
Bizare, en temps normal le format CSV utilise la virgule, comme son nom l'indique (comma separated values), autrement dit en français valeurs séparées par une virgule.

Je dirais donc que l'enregistreur de macro a l'air de bien faire son boulo alors que excel Semble s'emmeller les piceaux.

Je pense que la source du problème viens du séparateur décimal.

En français, on utilise la virgule (,) alors que les anglais utilisent le Point(.). Or vba est tout en english donc lors de l'enregistrement depuis VBA, toutes les virgules sont converties en points puis le séparateur de valeur utilisé est bien la virgule. On a bien un format anglais et un fichier en CSV.

Mais Excel qui lui est en version française ne converti pas le séparateur décimal et se contente d'utiliser le point virgule comme séparateur de valeur. le fichier ainsi crée n'est pas du CSV et alors se pose le problème de compatibilité des CSV crée depuis Excel avec d'autres applications.

En résumé, on pourrait dire que du fait du format décimal utilisé en france, le format de fichier CSV est incompatible .

J'irais même plus loin.
Si on enregistre un fichier contenant des entiers depuis VBA avec un format CSV,
le séparateur utilisé est bien la virgule (jusqu'ici, normal) mais si on ouvre ce fichier avec excel, bonjour les dégats, Les entiers se sont transformés en décimaux à plusieurs virgules !!!!

La règle à utiliser est donc la suivante :

Les fichier CSV créés depuis VBA ne peuvent être ouverts que depuis VBA.

Et on notera également qui si on fait une extraction de données depuis Excel pour les importer dans un autre soft, L'extraction en CSV devra se faire en VBA.

Merci crosoft
0
bounette Messages postés 37 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 4 mars 2015
25 déc. 2005 à 21:48
Merci pour vos réponses

Je me mets au travail, je vous tiendrai au courant

Bounette

Je vous prie de m'excuser pour mon orthographe
0
Rejoignez-nous