Function SommeSiCouleur#(r As Range, An)
Application.Volatile
Dim coul&, x$
coul = Application.Caller.Interior.Color
For Each r In Intersect(r, r.Parent.UsedRange)
x = CStr(r)
If IsNumeric(x) Then If UCase(An) = "TOUTES" Or Year(r(1, 0)) = An Then _
If r.Interior.Color = coul Then SommeSiCouleur = SommeSiCouleur + CDbl(x)
Next
End Function