Remplacement de caractères

Bonjour,

Je ne peux pas remplacer les caractères souhaités avec le code ci-dessous, prière de me le corriger.

Sub Test_Remplacement_Caracteres()

    Workbooks("Test VBA.xlsm").Sheets("Test Code").Activate

    For l = 2 To 20
    For c = 5 To 5

    Cells(l, c).Select

        If Cells(l, c) Like "*/*" Then
        Replace(Cells(l, c), "/", "")

        ElseIf Cells(l, c) = "*\*" Then
        Replace(Cells(l, c), "\", "")

        ElseIf Cells(l, c) = "*-*" Then
        Replace(Cells(l, c), "-", "")

        ElseIf Cells(l, c) = "*_*" Then
        Replace(Cells(l, c), "_", "")

        ElseIf Cells(l, c) = "*,*" Then
        Replace(Cells(l, c), ",", "")

        ElseIf Cells(l, c) = "*;*" Then
        Replace(Cells(l, c), ";", "")

        ElseIf Cells(l, c) = "*:*" Then
        Replace(Cells(l, c), ":", "")

        ElseIf Cells(l, c) = "*.*" Then
        Replace(Cells(l, c), ".", "")

        ElseIf Cells(l, c) = "* *" Then
        Replace(Cells(l, c), " ", "")

        End If

    Next
    Next

End Sub

Merci par avance pour votre support.

Bonjour,

Ci-contre une alternative aux boucles qui vont prendre du temps en stockant les caractères à remplacer dans un tableau :

Sub Test_Remplacement_Caracteres()
Dim CARAC()
Dim i%
CARAC = Array("/", "\", "-", "_", ",", ";", ":", ".", " ")
Workbooks("Test VBA.xlsm").Sheets("Test Code").Activate 'Ne sert à rien si vous êtes déjà sur la bonne feuille
For i = 0 To UBound(CARAC)
    Range("E2:E20").Replace What:=CARAC(i), Replacement:="", LookAt:=xlPart
Next i
End Sub

Cdlt,

6test-vba.xlsm (14.46 Ko)

Edit : Vous utilisez mal la méthode replace qui doit être associé à un objet de type Range. Le premier Argument est What ce qui vous ne suivez pas.

Quelque chose comme ça devrait fonctionner :

ActiveSheet.Cells(l, c).Replace("/", "", xlPart)

Bonjour Ergotamine,

Ca fonctionne

Je vous remercie pour votre réponses et votre réactivité.

Cordialement.

Rechercher des sujets similaires à "remplacement caracteres"