Convertir virgule en point VBA

Résolu/Fermé
SavePilo Messages postés 4 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 31 mars 2014 - Modifié par pijaku le 28/03/2014 à 16:43
SavePilo Messages postés 4 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 31 mars 2014 - 31 mars 2014 à 10:10
Bonjour,

MON OBJECTIF :
J'ai trois colonnes dans Excel avec des nombres décimaux (contenant des virgules!).
----------------------------------------------------------------------------------------------------
-9,952854338 9,914015274 37,5
-9,68653706 10,17244397 37,5
-9,298642109 10,32703771 37,5
----------------------------------------------------------------------------------------------------

Je fais une première modification (vous pourrez comprendre pourquoi plus tard) pour transformer les "," en "." :
----------------------------------------------------------------------------------------------------
- Fichier
- Option
- Options avancées
- Décocher "Utiliser les séparateurs système"
- Mettre un point à la place de la virgule dans "Séparateur de décimale"
----------------------------------------------------------------------------------------------------

Et j'obtiens :
----------------------------------------------------------------------------------------------------
-9.952854338 9.914015274 37.5
-9.68653706 10.17244397 37.5
-9.298642109 10.32703771 37.5
----------------------------------------------------------------------------------------------------

Je souhaiterai exporter ces trois colonnes en fichier .txt de manière à créer des courbes sous SolidWorks.
Pour cela j'utilise le code suivant (non optimisé mais je travaillerai ca après avoir réglé mon problème):
----------------------------------------------------------------------------------------------------
Sub creer_TXT()

Dim Chemin As String
Dim DerniereLigne As Long           'Index de la dernière ligne
Dim Tableau1() As Variant
Dim Tableau2() As Variant
Dim Tableau3() As Variant
Dim Ligne As Long

Chemin = "C:\Users\User\Desktop\"
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row

'Création du tableau par une boucle
Ligne = 1
Do While Ligne <= DerniereLigne
 'Ajout 1 élément à l'array en conservant les éléments précédents
    ReDim Preserve Tableau1(Ligne)
     ReDim Preserve Tableau2(Ligne)
      ReDim Preserve Tableau3(Ligne)
'Affectation de la valeur au nouvel élément
    Tableau1(Ligne) = Range("A" & Ligne).Value
    Tableau2(Ligne) = Range("B" & Ligne).Value
    Tableau3(Ligne) = Range("C" & Ligne).Value
    Ligne = Ligne + 1
Loop

'Ecrit dans le fichier txt
Ligne = 1
Do While Ligne <= DerniereLigne
    Open Chemin & "Temporaire.txt" For Append As #Ligne
    
    Print #Ligne, Tableau1(Ligne) & vbTab & Tableau2(Ligne) & vbTab & Tableau3(Ligne) & vbCrLf
    Close
    Ligne = Ligne + 1
Loop

MsgBox ("c'est ok")

End Sub

----------------------------------------------------------------------------------------------------

PROBLÈME : J'arrive a créer le fichier .txt mais je n'arrive pas à conserver les "." J'obtiens dans le fichier .txt des nombres décimaux avec des ",". Or SolidWorks ne reconnais pas les virgules mais uniquement les points!


MA QUESTION : Que faire pour obtenir des "." dans le fichier .txt ??

Je vous remercie par avance de bien vouloir m'aider. J'ai déjà fait plusieurs tests alors si vous voulez mieux comprendre, nous pouvons en discuter.

A bientôt,

7 réponses

Sandro96 Messages postés 18 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 7 avril 2020 1
28 mars 2014 à 15:47
si tu n'as pas d'autres virgules dans le document que celles des nombres décimaux, tu peux ouvrir ton fichier .txt avec bloc-notes, puis tu vas dans edition/remplacer (Ctrl+H)
dans rechercher tu met le signe virgule, dans remplacer tu met le point, puis tu clique sur remplacer tout.

ATTENTION : ne marche pas si tu as aussi des virgules qui ne correspondent pas aux nombres décimaux mais à du texte.

PS : as-tu vérifié que parmis tous les formats sous lesquels exel te permet d'enregistrer les fichiers (dans enregistrer sous), il n'y en a pas un qui convienne?
0