For a single area range, you can get the number of visible rows/columns with
something like:
Option Explicit
Sub testme()
Dim myRng As Range
Dim myVisibleCell As Range
Set myRng = ActiveSheet.Range("a1:x99")
Set myVisibleCell = Nothing
On Error Resume Next
Set myVisibleCell = myRng.Cells.SpecialCells(xlCellTypeVisible).Cells(1)
On Error Resume Next
If myVisibleCell Is Nothing Then
MsgBox "0 visible rows and 0 visible columns!"
Else
MsgBox "Visible Rows: " _
& Intersect(myVisibleCell.EntireColumn, myRng) _
.Cells.SpecialCells(xlCellTypeVisible).Cells.Count _
& vbLf & _
"Visible Cols: " _
& Intersect(myVisibleCell.EntireRow, myRng) _
.Cells.SpecialCells(xlCellTypeVisible).Cells.Count
End If
End Sub
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.