Macro "Remplacer"

Bonsoir,

Je sollicite votre aide pour gagner du temps en écriture de macro.

Dans une colonne D, j'ai environ 40 activités différentes sur plus de 2000 lignes.

Je souhaite regrouper mes activités en 4 catégories.

Donc j'utilise la macro suivante :

    Selection.Replace What:="RCSIMM", Replacement:="SIMM", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        Columns("D:D").Select
    Selection.Replace What:="MOBSIMM", Replacement:="SIMM", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
          Columns("D:D").Select
    Selection.Replace What:="BOPREM", Replacement:="BO", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Pour m'éviter de recopier autant de fois la macro qu'il y a d'activité, y a t'il un moyen de simplifier l’écriture ?

Exemple : What : "RCSIMM";"MOBSIMM", Replacement:="SIMM"

Merci pour votre aide.

Bonjour

Je ne crois pas qu'il y ait la possibilité d'indiquer plusieurs mots pour la recherche

Il faudra les passer toute en revue

On peut envisager de réduire le code en passant par des tableaux

1 pour la recherche et un pour le remplacement

et une boucle pour ficeler le tout

Ta macro pourrait ressembler à ça

Option Explicit

Sub test()
Dim Recherche
Dim Remplacement
Dim I As Integer

  Recherche = Array("RCSIMM", "MOBSIMM", "BOPREM")
  Remplacement = Array("SIMM", "SIMM", "BO")
  With Columns("D")
    For I = 0 To UBound(Recherche)
      .Replace What:=Recherche(I), Replacement:=Remplacement(I), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Next I
  End With
End Sub

Merci pour ta réponse Bonzai64.

Rechercher des sujets similaires à "macro remplacer"