IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Remplacer virgule par point [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 123
    Points : 67
    Points
    67
    Par défaut Remplacer virgule par point
    Bonjour

    J'ai un fichier dans le quel je souhaite remplacer dans une colonne la virgule par un point dans les données présentes de type "1,55".
    J'ai créé par la méthode pas à pas une macro qui réalise cette conversion et qui fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub RemplaceVirgule()
        Columns("A:A").Select
        Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
           SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
           ReplaceFormat:=False
        Range("A1").Select
    End Sub
    Ce qui est étrange est que lorsque j'affecte cette macro à un bouton et que je clique sur ce dernier je n'obtiens pas la conversion souhaitée.
    Etrange aussi, si je ne saisis que des "," dans cette colonne, l'action de mon bouton remplace bien la virgule par le point.

    Depuis ce matin je navigue sur les forums sans trouver de solutions ou du moins sans savoir les adapter à mon cas.
    Est ce que ce problème est lié à mon profil du type " paramètres régionaux", ou à celui du format des cellules ??

    D'avance merci pour votre aide
    Cordialement.
    SySym

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Pourquoi remplacer les virgules par des point alors que le point est la virgule en Anglai et Excel les converti en virgules!

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut



    Bonjour, bonjour !

    En fait si les données sont bien au format numérique, la virgule affichée (séparateur du format régional)
    est déjà un point en interne ! Sans connaître le but de la manœuvre …

    Edit : Robert m'a devancé et nous sommes bien d'accord !

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 123
    Points : 67
    Points
    67
    Par défaut
    Bonjour Rudurupt
    Bonjour Marc-L

    Merci pour vos réponses.

    Mais je ne comprends pas pourquoi ce remplacement puisse se faire en manuel (ctl+H) et pas par macro?

    Bonne journée.
    Stsym

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour

    Quel est le format des cellules et quel est le séparateur décimal sur ton ordi?

    Voici 2 techniques qui devraient fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub tt()
    Dim s
    s = Selection.Value
    s = Application.Substitute(s, ",", ".")
    Selection.Value = s
    End Sub
     
    Sub tt2()
    For Each Cell In Selection
        Cell.Value = Replace(Cell.Value, ",", ".")
    Next
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 123
    Points : 67
    Points
    67
    Par défaut
    Bonjour Docmarti

    Séparateur décimal la virgule.
    Format Cellule "Standard".

    Les deux solutions fonctionnent parfaitement si je passe les cellules au format Texte.

    Merci pour ton aide.
    Cordialement.
    StSym

  7. #7
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Si tu veux empêcher Excel d'interpréter les valeurs sans devoir passer par le format Texte, tu peux utiliser FormulaLocal .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub tt()
    Dim s
     
    s = Selection.Value
    s = Application.Substitute(s, ",", ".")
    Selection.FormulaLocal = s
    End Sub

  8. #8
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    J'ai même essayé ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Columns("C:C").Select
    '    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
    '        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    '        ReplaceFormat:=False
    Ben non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. remplacer virgule par point
    Par floflo50100 dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/07/2015, 12h33
  2. [XL-2003] Remplacer virgule par point
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/12/2014, 09h05
  3. [Python 3.X] Remplacer virgule par point dans un fichier csv
    Par marco056 dans le forum Général Python
    Réponses: 2
    Dernier message: 21/11/2014, 19h20
  4. Remplacer virgule par point
    Par Stepsbysteps dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/05/2013, 14h40
  5. remplacer virgule par un point
    Par maysa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2007, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo