Having a bit of a problem with autolist/count function

Have written a function for counting visible cells for an autolist.
Was hoping that the following code would work:
Rng is the range for the autolist column in question:

rng.SpecialCells(xlCellTypeVisible).count - should count the visible cells.

this counts all rows not just the visible ones...

would like to use countif to count conditionally to like:

worksheetfunction.CountIf(rng.SpecialCells(xlCellTypeVisible),3) - should count visible cells with he value 3 in he appropriate column...

Probably me being stupid but why doesn't it work, please help!!

/Johan Litsén