Remplacer une virgule par un point

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Eric Dé

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite remplacer les virgules présentes dans les colonnes L à P par des points.

En faisant un ctrl + H et en renseignant les champs "," à remplacer par "." aucun problème, tout fonctionne.

J'ai enregistré un macro toute simple pour que cette manip se fasse par le biais d'un bouton mais quand je clique sur le bouton rien ne se passe !!! (le bouton est bien affecté à la macro !)

Le code enregistré est ci-dessous mais je ne vois pas d'obstacle au bon fonctionnement.

Auriez-vous des pistes ?

Merci d'avance.
Eric


Sub Suppression_Virgule()

Columns("L😛").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("L13").Select

End Sub
 
Bonjour

ce code remplace la virgule par un point quelque soit sa position dans la chaine
Code:
Sub SupVirgule()

Virgule = Chr(44)
Point = Chr(46)

NBLignes = Range("feuil2!L1").CurrentRegion.Rows.Count

For Each c In Range("L1:P" & NBLignes)

    MaChaine = c.Value
    Longueur = Len(MaChaine)
    Pos = 1
        Do While Pos < Longueur
            Pos = InStr(1, MaChaine, Virgule)
             If Pos = 0 Then Exit Do
             Mid(MaChaine, Pos) = Point
              c.Value = MaChaine
        Loop
Next
End Sub

Cdt
 
Bonjour Eric De, Chris24,

Je ne comprends pas bien car les macros des posts #1 et #2 remplacent toutes deux les virgules par des points.

Sauf bien sûr s'il s'agit de nombres décimaux
.

Si l'on veut aussi traiter les nombres décimaux :
Code:
Sub Suppression_Virgule()
Dim c As Range
For Each c In Intersect([L:P], ActiveSheet.UsedRange.EntireRow)
  If c.Text Like "*,*" Then c = "=SUBSTITUTE(""" & c.Text & ""","","",""."")": c = c
Next
End Sub
A+
 
Re,

S'il y a beaucoup de valeurs à traiter ceci devrait être plus rapide :
Code:
Sub Suppression_Virgule()
Dim c As Range
Application.ScreenUpdating = False
[L:P].Replace ",", ".", xlPart 'pour les textes
For Each c In Intersect([L:P], ActiveSheet.UsedRange.EntireRow)
  If IsNumeric(c) Then If c <> Int(c) Then c = "=SUBSTITUTE(""" & c.Text & ""","","",""."")": c = c
Next
End Sub
Edit : de plus la macro de mon post #5 beugue avec des guillemets dans le texte, testez "a,b,c"

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
230
Réponses
2
Affichages
410
Réponses
3
Affichages
494
Retour