A ma connaissance, il n'y a pas en excel de fonction qui permette de remplacer un mot entier par un autre mot. Les fonctions de remplacement permettent de remplacer une séquence de caractères par une autre sans notion de ce qui est un mot.
la fonction proposée identifie le mot en utilisant les expressions régulières et en respectant la casse du mot remplacé.
la fonction
Option Explicit
Function remplacemot(txt$, oldword$, newword$)
' H2SO4
' ******************************
' fonction de remplacement de toutes les occurrences d'un mot (oldword), identifié par des délimiteurs de mots, par un autre (newword) dans un texte donné (txt). la casse du mot remplacé est respectée.
' 28/3/2021
' v3.0 'simplification du code utilisation expression régulière.
'*******************************
Dim s$, re As Object
s$ = txt
Set re = CreateObject("vbscript.regexp")
re.Global = True
'mot inchangé
re.Pattern = "\b" & oldword & "\b"
s = re.Replace(s, newword)
' initiale est majuscule
oldword = UCase(Left(oldword, 1)) & Mid(oldword, 2)
newword = UCase(Left(newword, 1)) & Mid(newword, 2)
re.Pattern = "\b" & oldword & "\b"
s = re.Replace(s, newword)
'tout le mot en majuscules
oldword = UCase(oldword)
newword = UCase(newword)
re.Pattern = "\b" & oldword & "\b"
s = re.Replace(s, newword)
remplacemot = s
Set re = Nothing
End Function
exemple qui illustre l'utilisation de la fonction et les problèmes que l'on peut rencontrer avec les fonctions standard replace VBA ou excel, une première ligne avec la fonction proposée et une autre avec la fonctions standard (replace vba ou substitute excel).