J'attendais une réponse sans doute...
Revu ton fichier : j'ai réaménagé ta fonction NBCOLOR:
Function NBCOLOR(réfCoul As Range, Plage As Range) As Integer
Dim c As Range, n As Integer
Application.Volatile
For Each c In Plage
If c.Interior.Color = réfCoul.Interior.Color Then n = n + 1
Next c
NBCOLOR = n
End Function
Elle fonction, elle se recalcule lors d'un recalcul [pour déclencher un recalcul : double-clic suivi d'un appui sur Entrée, ou positionnement dans la barre de formule, suivi d'un appui sur Entrée,... mais le seul changement de couleur ne suffit pas à le déclencher).
A voir si cela correspond à ce que tu souhaitais ?
Cordialement.