Code remplacement virgules par des points

Bonjour à tous,

Je suis bloquée, je souhaite remplacer toutes les virgules d'une feuille par des points.

Malheusement, cela ne fonctionne pas pour les nombres. Ci-dessous le code. Merci de votre aide !

Sub ReplaceCommaWithDot()
    Dim startTime As Double
    Dim endTime As Double
    Dim processingTime As Double
    Dim ws As Worksheet
    Dim cell As Range
    Dim cellValue As String

    ' Enregistrer l'heure de début
    startTime = Timer

    ' Assurer que la feuille active est celle sur laquelle on travaille
    Set ws = ActiveSheet

    ' Désactiver les mises à jour de l'écran pour améliorer la performance
    Application.ScreenUpdating = False

    ' Parcourir toutes les cellules de la feuille active
    For Each cell In ws.UsedRange
        ' Vérifier si la cellule n'est pas vide
        If Not IsEmpty(cell.Value) Then
            ' Convertir la valeur de la cellule en chaîne de caractères
            cellValue = CStr(cell.Value)
            ' Remplacer la virgule par un point dans la chaîne
            cellValue = Replace(cellValue, ",", ".")
            ' Assigner la nouvelle valeur à la cellule
            cell.Value = cellValue
        End If
    Next cell

    ' Enregistrer l'heure de fin
    endTime = Timer

    ' Réactiver les mises à jour de l'écran
    Application.ScreenUpdating = True

    ' Calculer le temps de traitement
    processingTime = endTime - startTime

    ' Afficher le temps de traitement
    MsgBox "Temps de traitement: " & Format(processingTime, "0.00") & " secondes"
End Sub

Bonjour,

Les 2 instructions suivantes ne remplaceraient elles pas tout le code tout en traitant aussi les cellules contenant des valeurs numériques à virgule ?

Sub ReplaceCommaWithDot()
    ' Si les cellules doivent toutes être au format texte
    Cells.NumberFormat = "@"
    ' Remplacement global de la virgule par un point 
    Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

Cdlt,

Cylfo

Je viens d'essayer ne fonctionne pas sur les valeurs numériques à virgule :(

Quand je fais la manipulation Remplacer soit CTRL+F cela fonctionne. Mais le but étant de l'intégrer dans un code

Re,

Effectivement , par contre en modifiant comme suit votre procédure cela fonctionne

    For Each cell In ws.UsedRange
        ' Vérifier si la cellule n'est pas vide
        If Not IsEmpty(cell.Value) Then
            ' Si numérique mettre au format texte 
            If IsNumeric(cell.Value) = True Then cell.NumberFormat = "@"

            ' Convertir la valeur de la cellule en chaîne de caractères
            cellValue = CStr(cell.Value)
            ' Remplacer la virgule par un point dans la chaîne
            cellValue = Replace(cellValue, ",", ".")
            ' Assigner la nouvelle valeur à la cellule
            cell.Value = cellValue
        End If
    Next cell

Cdlt,

Cylfo

Bonjour,

Post annulé, compréhension inverse du besoin

Désolé

Bonne journée

Merci Cylfo, ça fonctionne :)

Rechercher des sujets similaires à "code remplacement virgules points"