Sub test()
Dim pl As Range, msg As String
' sélectionner format "0.00" écrit en rouge
Set pl = cherche_Format([A1:Z100], "0.00", , RGB(255, 0, 0))
' sélectionner format "0.00" en rouge sur fond vert
Set pl = cherche_Format([A1:Z100], "0.00", vbGreen, RGB(255, 0, 0))
If pl Is Nothing Then msg = "Nothing" Else msg = pl.Address
MsgBox msg
End Sub
Function cherche_Format(plage As Range, Optional formatNombre, Optional interiorColor, Optional fontColor) As Range
Dim c1 As Range, pl As Range, adr1 As String, ok As Boolean
Application.FindFormat.Clear
If Not IsMissing(formatNombre) Then Application.FindFormat.NumberFormat = formatNombre: ok = True
If Not IsMissing(interiorColor) Then Application.FindFormat.Interior.Color = interiorColor: ok = True
If Not IsMissing(fontColor) Then Application.FindFormat.Font.Color = fontColor: ok = True
If ok Then
Set c1 = plage.Find(What:="", LookIn:=xlValues, LookAt:=xlWhole, SearchFormat:=True)
If c1 Is Nothing Then Exit Function
adr1 = c1.Address
Do
If pl Is Nothing Then Set pl = c1 Else Set pl = Union(pl, c1)
Set c1 = plage.Find(What:="", After:=c1, LookIn:=xlValues, LookAt:=xlWhole, SearchFormat:=True)
If c1.Address <> adr1 Then
End If
Loop While Not c1 Is Nothing And c1.Address <> adr1
End If
Set cherche_Format = pl
End Function