There is an example of using SUMPRODUCT and UDFs to count coloured cells at
http://www.xldynamic.com/source/xld.ColourCounter.html
The biggest problem is that changing a colour does not generate a worksheet
recalculation. One way around this is to use a button to set the colour, and
in the code associated with the button, do a sheet calculate
(Activesheet.Calculate). You would also need to add Application.Volatile to
the UDF.
--
HTH
RP
(remove nothere from the email address if mailing direct)