Hallo Bitfox,
der kleine Fehler liegt daran, dass Du als letztes in Deiner Zeile noch einmal RANGE("A:O") verwendest, damit hast Du das SpecialCells quasi wieder entfernt.
So in etwa sollte die zeile aussehen:
...Range("A:O").SpecialCells(XlCellTypeVisible).Columns.Count
Aber Achtung, es muss mindestens eine Spalte übrig (sichtbar) sein, sonst läuft das in einen Fehler!
Grüße
Roland