Count Filtered Objects on a Sheet

Martin514

New Member
Joined
Nov 12, 2008
Messages
7
Hi Folks,

Excel allows users to have both autofiltered Tables and an autofiltered Range on the SAME sheet. How do I leverage VBA to count the number of autofiltered objects (both tables and a range) on a sheet. I'm developing an add-in where its important to identify multiple filtered ranges on a single sheet

Martin
 
Last edited:

Excel Facts

How to show all formulas in Excel?
Press Ctrl+` to show all formulas. Press it again to toggle back to numbers. The grave accent is often under the tilde on US keyboards.
Hi Folks,

Excel allows users to have both autofiltered Tables and an autofiltered Range on the SAME sheet. How do I leverage VBA to count the number of autofiltered objects (both tables and a range) on a sheet. I'm developing an add-in where its important to identify multiple filtered ranges on a single sheet

Martin

How about this function :
Code:
Function FilteredObjectsCount(ByVal Sh As Worksheet) As Long
    FilteredObjectsCount = Sh.ListObjects.Count - CLng(Sh.AutoFilterMode)
End Function


and then you can call it like this : (Change the sheet name as required)
Code:
Sub Test()
    MsgBox FilteredObjectsCount(Sheet1)
End Sub
 
Upvote 0
Dismiss the previous function and use the following one which takes into account if a table is not showing an autofilter:

Code:
Function FilteredObjectsCount(ByVal Sh As Worksheet) As Long
    Dim oListObj As ListObject
    For Each oListObj In Sh.ListObjects
        FilteredObjectsCount = FilteredObjectsCount - CLng(oListObj.ShowAutoFilter)
    Next
    FilteredObjectsCount = FilteredObjectsCount - CLng(Sh.AutoFilterMode)
End Function

Sub Test()
    MsgBox FilteredObjectsCount(Sheet1)
End Sub
 
Upvote 0
I have not the same understanding that Jaafar, but his code is a good idea to reuse
Code:
Option Explicit




Function FilteredObjectsCount(ByVal Sh As Worksheet) As Long
    FilteredObjectsCount = Sh.ListObjects.Count
    If (Sh.AutoFilterMode) Then FilteredObjectsCount = FilteredObjectsCount + 1
     
End Function




Sub Test()
    MsgBox FilteredObjectsCount(Sheet1)
End Sub
 
Last edited:
Upvote 0

Forum statistics

Threads
1,215,796
Messages
6,126,964
Members
449,350
Latest member
Sylvine

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top