Convertir un excel en txt en concervant les virgules

  • Auteur de la discussion Smiliesmacro
  • Date de début

Smiliesmacro

Nouveau membre
Bonjour,

J'ai crée un macro pour enregistrer un fichier xls en fichier txt mais inconvénient les virgules sont converties en point, or je veux conserver la virgule.

Voici ma procédure, j'ouvre mon classeur qui contient plusieurs feuilles puis je copie la feuille que je souhaite enregistrer en txt (car la sauvegarde en txt ne peut se faire que sur une feuille donc je génère un nouveau classeur avec 1 feuille). Puis j'enregistre ce nouveau fichier en txt. Le probème est que le fichier txt à converti les virgules en points or je souhaite conserver les virgules.

Code:
ChDir wNom_dossier 
Windows("Fichier_Nom.xls" ).Activate 
Sheets("Feuille_à_convertir" ).Activate 
ActiveSheet.Copy 
ActiveWorkbook.SaveAs Filename:= _ 
wNom_dossier & "\Save_feuille_à_convertir.xls" 
ActiveWorkbook.SaveAs Filename:= _ 
wNom_dossier & "\Save_feuille_à_convertir.txt", FileFormat:=xlText, _ 
CreateBackup:=False 
ActiveWorkbook.Close True

Par contre si je prend en fichier excel quelconque, je remplis une casse avec "0,1" je crée la macro pour enregistrer en txt et je la lance. Dans ce cas je génère un txt mais avec un point au lieu de la virgule (j'obtiens 0.1). Ayant fait tourné la macro je me retouve dans mon nouveau fichier txt généré par la macro mais au format excel, qd je souhaite quitté ce fichier excel me demande de l'enregistrer, je l'enregistre avec un nouveau nom et au format txt et là j'obtiens un fichier txt avec virgule. POURQUOI ,

Comment retranscrire cette procédure ou y-a-t-il un commande qui conserve la virgule lors d'un enregstrment xls vers txt


Merci de votre aide
 

zeb

Modérateur
Salut,

Utilise le format CSV :
Code:
....SaveAs Filename:= wNom_dossier & "\Save_feuille_à_convertir.txt", FileFormat:=xlCSV, CreateBackup:=False

Sinon, voilà bien un code très compliqué. Voici ma simplification pour remplacer tes 10 lignes :
Code:
Workbooks("Fichier_Nom.xls").Worksheets("Feuille_à_convertir" ).SaveAs wNom_dossier & "\Save_feuille_à_convertir.txt", xlCSV
 

beru

Habitué
En ce qui me concerne, j'ai tout essayé, format csv, txt, ... et rien à faire, chez moi aussi il me remplace mes virgules par des points!
Maintenant chez moi à la base j'utilise Excel 2003 Anglais ... avec la traduction française ... et c'est toujours le "foutoir" dans les formats de dates et les nombres
 

zeb

Modérateur
Oups, il manque le paramètre Local...
Code:
' // Version 1
...Worksheets("Feuille_à_convertir" ).SaveAs wNom_dossier & "\Save_feuille_à_convertir.txt", xlCSV, , , , , , , , True

' // Version 2
...Worksheets("Feuille_à_convertir" ).SaveAs _
      Filename:=wNom_dossier & "\Save_feuille_à_convertir.txt", _
      FileFormat:=xlCSV,
      Local:=True

D'un autre côté, en programmation, on utilise des nombres à point... :spamafote:
Donc en cas de partage de données, préférer une localisation à Faux.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 809
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut