VBA - Remplacer des caractères dans une cellule donnée seulement

Bonjour

Sur une feuille Excel je dois remplacer dans une cellule donnée les espaces par "_" avec le code suivant:

                Cells(x, Y).Select
                Selection.Replace What:=" ", Replacement:="_", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
                ReplaceFormat:=False
                Selection.Replace What:="-", Replacement:="_", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
                ReplaceFormat:=False
               Selection.Replace What:="~*", Replacement:="_", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=False

Sauf qu'il me fait le remplacement dans toutes les cellules de la feuilles alors que je précise bien que ce n'est que la sélection où je souhaite faire le remplacement.

Pourquoi ai-je ce problème?

Agrimaman

Bonsoir

Essayez avec ce code

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
    .Replace What:=" ", Replacement:="_", LookAt:=xlPart, MatchCase:=True
    .Replace What:="-", Replacement:="_", LookAt:=xlPart, MatchCase:=True
    .Replace What:="~*", Replacement:="_", LookAt:=xlPart, MatchCase:=False
End With
End Sub

Attention que le code est à placer dans la feuille concernée par les actions de remplacement

Cordialement

Merci beaucoup ça a marché!!!

Agrimaman

Rechercher des sujets similaires à "vba remplacer caracteres donnee seulement"