Option Explicit
Function CompteCouleur(plage As Range, cellCouleur As Range) As Integer
Dim refCoul, x, nbr&
Application.Volatile
refCoul = cellCouleur.Interior.Color
For Each x In plage: nbr = nbr - (DFColor(x) = refCoul): Next
CompteCouleur = nbr
End Function
Function DFColor(ByVal R As Range) As Double
Application.Volatile
DFColor = Evaluate("Helper(" & R.Address() & ")")
End Function
Private Function Helper(ByVal R As Range) As Double
Helper = R.DisplayFormat.Interior.Color
End Function