Private Sub CommandButton1_Click()
Dim O As Object 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)
Dim BE As String 'déclare la variable BE (Boîte d'Entrée)
Dim Deb As Integer 'déclare la variable Deb (Début)
Dim Lon As Integer 'déclare la variable Lon (Longueur)
Dim R As Range 'déclare la variable R (Recherche)
Dim PA As String 'déclare la variable PA (Première Adresse)
ActiveCell.Select 'enlève le focus au bouton
Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set PL = O.Range("A1:B4") 'définit la plage PL (à adapter à ton cas)
'remet toues les cellules de la plage P au format initial
With PL.Cells.Font 'prend en conte le format de police de la plage PL
.FontStyle = "Normal" 'style normal
.ColorIndex = xlAutomatic 'couleur automatique
End With 'fin de la prise en compte du format de police de la plage PL
BE = InputBox("Tapez le mot à chercher !", "RECHERCHE") 'définit la boîte d'Entrée BE
If BE = "" Then Exit Sub 'si BE est vide ou bouton "Annuler", sort de la procédure
Set R = PL.Find(BE, , xlValues, xlPart) 'définit la recherche R (recherche BE dans la plage PL)
If Not R Is Nothing Then 'si il existe au moins une occurrence trouvée
PA = R.Address 'définit l'adresse de la première occurrence trouvée
Do 'éxécute
Deb = Application.WorksheetFunction.Search(BE, R.Value) 'définit la position du premier caractère de BE dans l'occurrence trouvée
Lon = Len(BE) 'définit la longueur du mot BE
With R.Characters(Start:=Deb, Length:=Lon).Font 'prend en compte le format de police du mot BE dans la chaîne de l'occurrence trouvée
.FontStyle = "Gras" 'style gras
.Color = -16776961 'couleur rouge
End With 'fin de la pros een compte du...
Set R = PL.FindNext(R) 'redéfinit la recherche R (occurrence suivante)
Loop While Not R Is Nothing And R.Address <> PA 'boucle tant qu'il existe de nouvelle occurrences ailleurs qu'en PA
End If 'fin de la condition
End Sub