[Visual Basic] Remplacer virgules par points [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
31 juillet 2008
-
Messages postés
8
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
31 juillet 2008
-
Bonjour,

j'ai déjà vu sur les forums que certains avaient déjà remarquer que:

Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


ne fonctionne pas pour remplacer les virgules par des points sur des données Excel.

J'ai donc mis le point comme séparateur de décimal par défaut:

With Application
.DecimalSeparator = "."
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With


Cela remplace bien sur ma feuille Excel les virgules par des points. Le problème est que je veux recupérer certaines données dans des fichiers .in
J'utilise:

With MonFic
i = 16

While Not Range("AF" & i).Value = ""
nom = Range("AF" & i).Value
valeur = Range("AG" & i).Value
.write (nom)
.write (" ")
.writeLine (valeur)
i = i + 1
Wend
End With


Et dans le fichier crée ("MonFic"), les virgules sont utilisées comme séparateur décimale et non les points ( alors que dans les cellules lues, c'est bien un point qui est utilisé).

Donc si vous avez des idées pour que je puisse créer un fichier.in avec des points comme séparateurs et non des virgules, n'hésitez pas à proposer.

Merci d'avance,

4 réponses

Bonjour,

Pour résoudre ton problème, utilise une autre syntaxe.

D'abord ouvrir le fichier Monfich en écriture:
Open Monfich for Output as #1

Ensuite écrire les données dans Monfich:
i = 16
While Not Range("AF" & i).Value = ""
nom = Range("AF" & i).Value
valeur = Range("AG" & i).Value
Print #1, nom ; " " ; valeur
i = i + 1
Wend
Close #1


Salut.
Messages postés
8
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
31 juillet 2008

Merci !
Messages postés
8
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
31 juillet 2008

Et bien, cela ne marche tjs pas. Maintenant, j'utilise:


Private Sub CommandButton1_Click()

With Application
.DecimalSeparator = "."
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With

adresse = Range("AD11").Value
Fichier = Range("AF11").Value

Open adresse & Fichier For Output As #1
i = 16
While Not Range("AB" & i).Value = ""
nom = Range("AB" & i).Value
valeur = Range("AC" & i).Value
Print #1, nom; " "; valeur
i = i + 1
Wend
Close #1

Msg = "Écriture réussie dans " & adresse & Fichier
MsgBox (Msg)



Mais dans le fichier crée, les nombres sont encore écrits avec des virgules et non des points. Donc si vous avez d'autres idées.

Merci,
Messages postés
8
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
31 juillet 2008

C'est bon maintenant.

Cette fois, le Replace fonctionne:

avec
valeur = Replace(Range("AC" & i).Value, ",", ".")
au lieu de
valeur = Range("AC" & i).Value
çà fonctionne