Remplacer chaine de caracteres avec condition

Bonjour a tous,

je debute en VBA...donc on ne se moque pas

j ai cherché sur differents forums mais je n ai pas trouvé exactement ce que je veux, et je pense que ce dont j ai besoin ne peut pas se faire par l enregistreur de macro.

Sur une plage F46:F137 je viens coller des cellules d un autre fichier. Ce que je colle sont des lettres qui correspondent a des codes couleurs (B=bleu, R= rouge, ....)Je voudrais par une macro, que pour chaque cellule de la plage, si la cellule contient deja la lettre "M" , alors, on garde le contenu de la cellule, sinon on remplace "BRT" par "BMT". Je veux que la macro écrase le contenu de la cellule.

SI( "*BRT*" ET ocuurence "M" =0 , alors en remplace "BRT" par "BMT", sinon on garde le conteneu initial)

F46 BRT => BMT

F47 BRTBM => BRTBM (car "M" present donc on garde le contenu)

F48 BNTBM => BNTBM ("BRT" par present, donc rien)

F49 BRTBN => BMTBN

j ai pour le moment ecris ce code, mais qui ne prend pas en compte la condition si....

Sub test()

With Worksheets("Feuil1")

.Range("F465:F137").Replace "BRT", "BMT"

End With

End Sub

Merci pour votre aide

Bonjour Floreli et bienvenue sur ce Forum,

Essaye le code ci-dessous et reviens vers nous si sa ne correspond pas :

Sub FindReplace()
Dim c, p As Range
Set p = Range("F46:F137")
For Each c In p
    If InStr(1, c.Value, "M") Then
        ElseIf InStr(1, c.Value, "BRT") Then c.Value = Replace(c.Value, "BRT", "BMT")
    End If
Next c
End Sub

Restant à disposition

parfait ca marche exactement comme je voulais !

merci beaucoup Juice !!!

Rechercher des sujets similaires à "remplacer chaine caracteres condition"