Export Colonnes en .txt en conservant le séparateur numérique

Alafolix

XLDnaute Nouveau
Bonjour à tous,

Je suis actuellement à la recherche d'une solution lors d'un export en format .txt.
Ma feuille .xls contient des colonnes de nombre dont le séparateur numérique est la virgule.
Lorsque je lance mon export en .txt, la virgule est remplacée par un point pour une raison que j'ignore..
J'aimerai comprendre l'origine du problème sachant que je me refuse à visiter un par un les multiples fichiers text pour faire un Ctrl+H et modifier mes point en virgules..

Le déroulement du traitement informatique est le suivant :

La feuille en pièce jointe contient des colonnes de nombre. Pour diverses raisons, je dois exporter chaque colonne en .txt avec le "nom" de ces colonnes.
Ici dans l'exemple de la première colonne à exporter, le nom est CH001.
Je sélectionne donc les données de cette colonne avec les données temporelles, je les copie dans une autre feuille (export) et je lance mon export en txt.
Une fois tout cela terminé, le fichier texte révèle les données avec un point en séparateur numérique, et non une virgule. Je tiens à conserver la virgule.

Comme il y a plusieurs colonne intéressantes dans le classeur, je créé aussi une feuille "Tri" qui me donne directement les données intéressantes à exporter.

La question est la suivante :
1/ Savez vous comment rétablir la virgule dans les fichiers textes sans retravailler les fichiers textes séparément.

J’espère avoir été le clair sur mon code.

Merci d'avance et bonne fin de journée :)

Léo
 

Pièces jointes

  • a_traiter.xls
    614 KB · Affichages: 10
  • Traitement.xlsm
    22.2 KB · Affichages: 6
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Ainsi modifiée la macro Export_Text a bien comme séparateur décimal la virgule
(test OK sur mon PC : avec Excel 2013)
VB:
Sub Export_Txt()
Dim chemin$
chemin = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=chemin & "test.txt", FileFormat:=xlText, Local:=True
End Sub
Petit bonus, ci-dessous, j'ai fusionné tes deux fonctions de conversions en une seule
(et éviter les Select)
VB:
Sub Conversions()
' modification du format de la colonne B (heure)
Dim f As Worksheet: Set f = Sheets(1)
f.Range("B31", f.Cells(Rows.Count, "B").End(3)).NumberFormat = "[$-F400]h:mm:ss AM/PM"
' modification du format de la colonne A (date)
f.Range("A31", f.Cells(Rows.Count, "B").End(3)).NumberFormat = "yyyy/mm/dd"
End Sub
 

Alafolix

XLDnaute Nouveau
Je te remercie, c'est top !
J'avais penser après coup sinon forcer le format des colonnes en chaine de caractère et non en numérique.

Pourrais-je te demander une autre chose :

2/ Imaginons une liste déroulante dans la feuille 1 composée de [x1;x2;x3;x4;x5;x6;x7;x8;x9;x10;x11;x12].
Je souhaite que mon fichier texte se nomme non plus CH001 mais sa correspondance dans la feuille Settings en fonction de ce qu'on a mis dans la liste déroulante avant l'ouverture du fichier.

Mes fichiers à traiter sont bien plus gros que celui-ci. J'ai un peu peur du temps d’exécution de la macro.

Merci pour ta réactivité sur ma question 1 !

Léo
 

Staple1600

XLDnaute Barbatruc
Re

J'ai du fermer ton fichier (mon compteur Geiger-Muller s'est subitement emballé) ;)

Si tu as une nouvelle question, crée une nouvelle discussion
(comme le conseille la charte du forum)

PS: Tu ne m'as dit si le code que j'ai proposé fonctionne sur ton PC.
Notamment la macro Export_Text modifiée?
 

Alafolix

XLDnaute Nouveau
J'ai une erreur qui ne part pas mais je vais trouver je pense.
"L'indice n'appartient pas à la sélection" Erreur d'exécution 9. [Workbooks("Ventil.xlsm").Activate] surligné dans le débogg.
EDIT ==> Le nom de ma macro avait été modifié. Cela fonctionne.
La virgule est bien présente, d'où mon premier ressenti !

Par contre les fichiers se placent à la racine du disque dur. ils sont sensés être dans le dossier de la feuille ouverte en question.

Je posterai une seconde question, merci pour le rappel :)
 

Discussions similaires

Statistiques des forums

Discussions
312 113
Messages
2 085 422
Membres
102 886
dernier inscrit
eurlece