Bonjour,
Je ne vois pas très bien l'intérêt du "Range" dans l'histoire ?
Tu as plusieurs possibilités pour faire ce que tu souhaites. La plus simple à mon avis, c'est de séparer tes données dans des colonnes différentes grâce à "Données" --> "Convertir" et choisir un séparateur personnalisé ":". Tu peux ensuite utiliser "Rechercher et remplacer" dans la colonne appropriée pour remplacer "FACTEUR" par "Courrier".
Une autre possibilité à tester (non exhaustive) :
Sub RemplacerMetier()
Dim i As Integer, valeur() As String
With Sheets("BaseDeDonnées")
For i = 2 To 100
valeur = Split(.Range("A" & i), ":")
If valeur(2) = "FACTEUR" Then 'cas où FACTEUR n'est pas contenu dans un texte plus long, sinon utiliser Like "*FACTEUR*", qui est sensible à la casse
valeur(2) = "Courrier"
For j = LBound(valeur) To UBound(valeur)
.Range("A" & i) = .Range("A" & i) & ":" & valeur(j)
Next j
End If
Next i
End With
End Sub
PS : si le mot FACTEUR n'est pas présent dans les autres parties de ta cellule (Nom, Prénom), il suffit de faire :
.Range("A" & i)=Replace(.Range("A" & i), "FACTEUR", "Courrier")
Aussi possible sans VBA avec "Rechercher et remplacer"...