There are several ways to accomplish this. You could use a pivot table...
You could also use a formula on the worksheet...
Formula: =SUM(IF(FREQUENCY(IF(LEN(A1:A10)>0,MATCH(A1:A10,A1:A10,0),""),IF(LEN(A1:A10)>0,MATCH(A1:A10,A1:A10,0),""))>0,1))
Formula: =SUMPRODUCT((A1:A10<>"")/(COUNTIF(A1:A10,A1:A10&"")))
Formula: =SUMPRODUCT((A1:A10<>"")/(COUNTIF(A1:A10,A1:A10)+(A1:A10="")))
or with VBA...
your list range = where your list is located
destination range = the below will copy the unique entries from the list to a new (and could be temporary) location
(I would have the destination be a named range - lets call it "dest")
Code Snippet
Range("your list range").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"dest"), Unique:=True
Then use the following to get a count of the items in the new list...
Code Snippet
Range("wherever you want it").FormulaR1C1 = "=SUM(dest)"
sorry Andy, I got a phone call after I started typing, didn't see that you replied when i got off.