Bonjour,
il n'est à ma connaissance pas possible de faire une mise en forme individuelle des caractères d'une cellule qui contient un texte qui est le résultat d'une formule. il faut transformer la formule en son résultat.
Option Explicit
Dim ln, j, p, lgr
Sub Colorer()
Dim b As Variant
Dim texte As String, i
For ln = 3 To Range("N" & Rows.Count).End(xlUp).Row
texte = ""
For i = 1 To 4
If Cells(ln, 13 + i) <> "" Then texte = texte & " " & Cells(ln, 13 + i)
Next i
Range("m" & ln) = texte
'****************** pour bague 1 ******************
p = InStr(Range("m" & ln), "Or") 'orange
If p > 0 Then
With Range("m" & ln).Characters(p, 2).Font
.Color = RGB(0, 255, 255)
.FontStyle = "bold"
End With
End If
p = InStr(Range("m" & ln), "M")
If p > 0 Then
With Range("m" & ln).Characters(p, 1).Font
.Color = RGB(255, 0, 0)
.FontStyle = "Bold"
End With
End If
'else if pour J(jaune) Bc(blac) Bu(bleu) R(rouge)
'****************** pour bague 2 ******************
'****************** pour bague 3 ******************
'****************** pour bague 4 ******************
Next ln
End Sub