Convertir virgule en point VBA
Résolu
SavePilo
Messages postés
4
Statut
Membre
-
SavePilo Messages postés 4 Statut Membre -
SavePilo Messages postés 4 Statut Membre -
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):
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
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,
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,
A voir également:
- Vba remplacer point par virgule
- Remplacer disque dur par ssd - Guide
- Remplacer par word - Guide
- Point de suite word - Guide
- Point de restauration - Guide
- Comment envoyer un point gps par sms - Accueil - Téléphones
7 réponses
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?
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?
Bonjour,
Le problème vient du fait que, sous Excel, tu ne remplaces pas les virgules par des points, mais change ton séparateur décimal.
Ainsi lorsque tu lances ta macro, le point est reconnu comme séparateur décimal.
Pour remplacer les virgules par des points utilise la fonction Excel Remplacer (accessible depuis ta feuille par le raccourci clavier CTRL+H).
Essaie comme cela et reviens nous indiquer si cela a fonctionné.
Le problème vient du fait que, sous Excel, tu ne remplaces pas les virgules par des points, mais change ton séparateur décimal.
Ainsi lorsque tu lances ta macro, le point est reconnu comme séparateur décimal.
Pour remplacer les virgules par des points utilise la fonction Excel Remplacer (accessible depuis ta feuille par le raccourci clavier CTRL+H).
Essaie comme cela et reviens nous indiquer si cela a fonctionné.
J'ai oublié de précisé que j'aimerai éviter de faire "remplacer tout" manuellement.
J'airai aimé lancé le programme et obtenir directement le fichier texte utilisable dans SolidWorks.
Je cherche à automatisé le travail pour que d'autres puissent l'utiliser sans se tromper et plus rapidement...
Peux-tu expliquer plus en détail cette questions ?
"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?"
L'idée que tu sous entends est d'enregistrer mon fichier Excel sous un autre format pour pouvoir l'utiliser directement dans SolidWorks?
Merci en tout cas pour ce début de proposition!
J'airai aimé lancé le programme et obtenir directement le fichier texte utilisable dans SolidWorks.
Je cherche à automatisé le travail pour que d'autres puissent l'utiliser sans se tromper et plus rapidement...
Peux-tu expliquer plus en détail cette questions ?
"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?"
L'idée que tu sous entends est d'enregistrer mon fichier Excel sous un autre format pour pouvoir l'utiliser directement dans SolidWorks?
Merci en tout cas pour ce début de proposition!
Bonjour a tous,
Remettez votre option "Utiliser les séparateurs système", laissez la saisie separateur en virgule et:
par contre le fichier en Append ?????
Remettez votre option "Utiliser les séparateurs système", laissez la saisie separateur en virgule et:
Sub creer_TXT()
Dim Chemin As String
Dim DerniereLigne As Long 'Index de la dernière ligne
Dim Ligne As Long
Chemin = "C:\Users\User\Desktop\"
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
'Création du tableau par une boucle
'Ecrit dans le fichier txt
Ligne = 1
Do While Ligne <= DerniereLigne
Open Chemin & "Temporaire.txt" For Append As #Ligne
Print #Ligne, Replace(Range("A" & Ligne).Value, ",", ".") & vbTab & Replace(Range("B" & Ligne).Value, ",", ".") & vbTab & Replace(Range("C" & Ligne).Value, ",", ".") & vbCrLf
Close
Ligne = Ligne + 1
Loop
MsgBox ("c'est ok")
End Sub
par contre le fichier en Append ?????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de tester le code et ça fonctionne : c'est merveilleux :-)
Je chercherai à comprendre tout ca lundi matin car je n'ai plus le temps aujourd'hui mais merci mille fois!
Par contre, je n'ai pas compris la question "par contre le fichier en Append ?????".
Bon WE et merci encore.
Je chercherai à comprendre tout ca lundi matin car je n'ai plus le temps aujourd'hui mais merci mille fois!
Par contre, je n'ai pas compris la question "par contre le fichier en Append ?????".
Bon WE et merci encore.
Re,
Les fichier en Append sont en general reserves a l'ajout d'enregistrements aux fichiers existant en les reouvrants. Si ce n'est pas votre cas ouvrir le fichier en Output
il y a un saut de ligne en fin ???????
Les fichier en Append sont en general reserves a l'ajout d'enregistrements aux fichiers existant en les reouvrants. Si ce n'est pas votre cas ouvrir le fichier en Output
Sub creer_TXT()
Dim Chemin As String
Dim DerniereLigne As Long 'Index de la dernière ligne
Dim Ligne As Long
Chemin = "C:\Users\User\Desktop\"
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
'Ecrit dans le fichier txt
Open Chemin & "Temporaire.txt" For Output As #1
For Ligne = 1 To DerniereLigne
Print #1, Replace(Range("A" & Ligne).Value, ",", ".") & vbTab & Replace(Range("B" & Ligne).Value, ",", ".") & vbTab & Replace(Range("C" & Ligne).Value, ",", ".") & vbCrLf
Next Ligne
Close
MsgBox ("c'est ok")
End Sub
il y a un saut de ligne en fin ???????