Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 120
Default Autofilter Check

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default Autofilter Check

Mark,

Don't check simply turn it off. If it isn't on it won't generate an error

Sub FilterOff()
Worksheets("sheet1").AutoFilterMode = False
End Sub

Mike

"Mark Ivey" wrote:

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Autofilter Check

Do you mean you want to check if the worksheet has autofilter applied--arrows
are added.

Or do you mean you want to check if the autofilter has been used to hide rows?

Maybe you can pick out what you need from this:

Option Explicit
Sub testme()
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
If .AutoFilterMode = True Then
MsgBox "Arrows are visible"
If .FilterMode = True Then
MsgBox "and there's at least one filter applied"
Else
MsgBox "but no fields have a filter applied"
End If
Else
MsgBox "No filter arrows applied"
End If
End With
End Sub

Sometimes, it's easier to just remove any autofiltering and start from scratch.

You could use this to remove any arrows and show all the data:
Activesheet.autofilter.mode = false

And it won't hurt if no filter has been applied.

And you didn't ask, but if you want to show all the data, but keep the arrows:

With Activesheet
If .FilterMode Then
.ShowAllData
End If
End With




Mark Ivey wrote:

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey


--

Dave Peterson
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 120
Default Autofilter Check

Thanks for the advice....

I will give it a shot.

Mark

"Mike H" wrote in message
...
Mark,

Don't check simply turn it off. If it isn't on it won't generate an error

Sub FilterOff()
Worksheets("sheet1").AutoFilterMode = False
End Sub

Mike

"Mark Ivey" wrote:

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 120
Default Autofilter Check

Really good advice...

What I really would like is to do something like this...

1. Check to see if an autofilter is used
2. If true, find out what field and filter is being used and keep them in
memory (temporarily).
3. Turn off autofilter
4. Run my macro
5. Turn the autofilter back on as it was before I started.

Any ideas on this one...

TIA,

Mark Ivey



"Dave Peterson" wrote in message
...
Do you mean you want to check if the worksheet has autofilter
applied--arrows
are added.

Or do you mean you want to check if the autofilter has been used to hide
rows?

Maybe you can pick out what you need from this:

Option Explicit
Sub testme()
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
If .AutoFilterMode = True Then
MsgBox "Arrows are visible"
If .FilterMode = True Then
MsgBox "and there's at least one filter applied"
Else
MsgBox "but no fields have a filter applied"
End If
Else
MsgBox "No filter arrows applied"
End If
End With
End Sub

Sometimes, it's easier to just remove any autofiltering and start from
scratch.

You could use this to remove any arrows and show all the data:
Activesheet.autofilter.mode = false

And it won't hurt if no filter has been applied.

And you didn't ask, but if you want to show all the data, but keep the
arrows:

With Activesheet
If .FilterMode Then
.ShowAllData
End If
End With




Mark Ivey wrote:

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey


--

Dave Peterson




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Autofilter Check

I saved this from a Tom Ogilvy post:
====================================

http://j-walk.com/ss/excel/usertips/tip044.htm

to get it to refresh:

=FilterCriteria(B5)&left(Subtotal(9,B5:B200),0)

this is one I wrote back in 2000

Here is a user defined function that will display the criteria in a cell:

Public Function ShowFilter(rng As Range)
Dim filt As Filter
Dim sCrit1 As String
Dim sCrit2 As String
Dim sop As String
Dim lngOp As Long
Dim lngOff As Long
Dim frng As Range
Dim sh As Worksheet
Set sh = rng.Parent
If sh.FilterMode = False Then
ShowFilter = "No Active Filter"
Exit Function
End If
Set frng = sh.AutoFilter.Range

If Intersect(rng.EntireColumn, frng) Is Nothing Then
ShowFilter = CVErr(xlErrRef)
Else
lngOff = rng.Column - frng.Columns(1).Column + 1
If Not sh.AutoFilter.Filters(lngOff).On Then
ShowFilter = "No Conditions"
Else
Set filt = sh.AutoFilter.Filters(lngOff)
On Error Resume Next
sCrit1 = filt.Criteria1
sCrit2 = filt.Criteria2
lngOp = filt.Operator
If lngOp = xlAnd Then
sop = " And "
ElseIf lngOp = xlOr Then
sop = " or "
Else
sop = ""
End If
ShowFilter = sCrit1 & sop & sCrit2
End If
End If
End Function

=ShowFilter(B5)&left(Subtotal(9,B5:B200),0)

would show the filter for column 2

I usually put these functions in cells above the filter

==============
If you're new to macros, you may want to read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm

Mark Ivey wrote:

Really good advice...

What I really would like is to do something like this...

1. Check to see if an autofilter is used
2. If true, find out what field and filter is being used and keep them in
memory (temporarily).
3. Turn off autofilter
4. Run my macro
5. Turn the autofilter back on as it was before I started.

Any ideas on this one...

TIA,

Mark Ivey

"Dave Peterson" wrote in message
...
Do you mean you want to check if the worksheet has autofilter
applied--arrows
are added.

Or do you mean you want to check if the autofilter has been used to hide
rows?

Maybe you can pick out what you need from this:

Option Explicit
Sub testme()
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
If .AutoFilterMode = True Then
MsgBox "Arrows are visible"
If .FilterMode = True Then
MsgBox "and there's at least one filter applied"
Else
MsgBox "but no fields have a filter applied"
End If
Else
MsgBox "No filter arrows applied"
End If
End With
End Sub

Sometimes, it's easier to just remove any autofiltering and start from
scratch.

You could use this to remove any arrows and show all the data:
Activesheet.autofilter.mode = false

And it won't hurt if no filter has been applied.

And you didn't ask, but if you want to show all the data, but keep the
arrows:

With Activesheet
If .FilterMode Then
.ShowAllData
End If
End With




Mark Ivey wrote:

How can I check to see if the autofilter is on before I launch my code?

TIA

Mark Ivey


--

Dave Peterson


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
excel 2007 autofilter change to 2003 autofilter functionality? jonnybrovo815 Excel Discussion (Misc queries) 1 April 19th 10 10:05 PM
2007 excel autofilter change back to 2003 autofilter? jonnybrovo815 Excel Discussion (Misc queries) 1 April 19th 10 05:53 PM
Check to see if Autofilter is Engaged asmithbcat Excel Discussion (Misc queries) 7 April 25th 08 04:54 PM
check boxes + autofilter - is it possible? Dirk Diggler Excel Programming 1 March 21st 07 08:51 PM
Create and Link check box with autofilter and sum, average of filtered raws. Madiya Excel Programming 1 January 12th 04 09:05 AM


All times are GMT +1. The time now is 09:33 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"