[Visual Basic] Remplacer virgules par points

Résolu
sebM Messages postés 8 Statut Membre -  
sebM Messages postés 8 Statut Membre -
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,
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. amigo
     
    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.
    0
  2. sebM Messages postés 8 Statut Membre
     
    Merci !
    0
  3. sebM Messages postés 8 Statut Membre
     
    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,
    0
  4. sebM Messages postés 8 Statut Membre
     
    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
    0