Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I have an Excel 2007 worksheet that has autofilters and macros assigned to option buttons in a Group Box that carry out some of the filtering. One button is the ShowAllData button that removes the filter. If the ShowAllData button is selected and then selected again (before any other button in the group is selected) I get a Run Time Error that the ShowAllData method of worksheet class failed. How do I prevent this error? I'm very new to VB. The code below is what I'm having trouble with. Thanks, Jim Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode = True Then ActiveSheet.ShowAllData ElseIf ActiveSheet.AutoFilterMode = False Then Else ActiveSheet.Protect Password:="sivle", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowSorting:=True, AllowFiltering:=True End If End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
With ActiveSheet
.unprotect ... If .FilterMode Then .ShowAllData End If .protect... end with JimAA wrote: Hi, I have an Excel 2007 worksheet that has autofilters and macros assigned to option buttons in a Group Box that carry out some of the filtering. One button is the ShowAllData button that removes the filter. If the ShowAllData button is selected and then selected again (before any other button in the group is selected) I get a Run Time Error that the ShowAllData method of worksheet class failed. How do I prevent this error? I'm very new to VB. The code below is what I'm having trouble with. Thanks, Jim Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode = True Then ActiveSheet.ShowAllData ElseIf ActiveSheet.AutoFilterMode = False Then Else ActiveSheet.Protect Password:="sivle", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowSorting:=True, AllowFiltering:=True End If End Sub -- Dave Peterson |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Jim,
AutoFilterMode tests if AutoFilter is applied to the worksheet (Like AutoFilter drop downs are present) FilterMode test if a filter has actually been set Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode = True Then If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData End If ElseIf ActiveSheet.AutoFilterMode = False Then Else 'ActiveSheet.Protect Password:="sivle", DrawingObjects:=True, _ Contents:=True, Scenarios:=True _ , AllowSorting:=True, AllowFiltering:=True End If End Sub -- Regards, OssieMac "JimAA" wrote: Hi, I have an Excel 2007 worksheet that has autofilters and macros assigned to option buttons in a Group Box that carry out some of the filtering. One button is the ShowAllData button that removes the filter. If the ShowAllData button is selected and then selected again (before any other button in the group is selected) I get a Run Time Error that the ShowAllData method of worksheet class failed. How do I prevent this error? I'm very new to VB. The code below is what I'm having trouble with. Thanks, Jim Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode = True Then ActiveSheet.ShowAllData ElseIf ActiveSheet.AutoFilterMode = False Then Else ActiveSheet.Protect Password:="sivle", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowSorting:=True, AllowFiltering:=True End If End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi again Jim,
The following method of testing both AutoFilterMode and FilterMode together in the one If statment also works. Note there is no need to use = True because it is understood. (If testing for False then you use = False) Also I think your use of ElseIf and Else is not correct. I think the Else part will never be processed under any conditions. Note the space and underscore at the end of a line is a line break in an otherwise single line of code. (I used them extensively when posting here because it prevents unwanted line breaks in the post and the code can be copied directly into your project. Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode _ And ActiveSheet.FilterMode Then ActiveSheet.ShowAllData ElseIf ActiveSheet.AutoFilterMode = False Then ActiveSheet.Protect Password:="sivle", _ DrawingObjects:=True, _ Contents:=True, _ Scenarios:=True, _ AllowSorting:=True, _ AllowFiltering:=True End If End Sub -- Regards, OssieMac |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Dave and OssieMac, I tried both solutions and they did exactly what I
wanted. "OssieMac" wrote: Hi again Jim, The following method of testing both AutoFilterMode and FilterMode together in the one If statment also works. Note there is no need to use = True because it is understood. (If testing for False then you use = False) Also I think your use of ElseIf and Else is not correct. I think the Else part will never be processed under any conditions. Note the space and underscore at the end of a line is a line break in an otherwise single line of code. (I used them extensively when posting here because it prevents unwanted line breaks in the post and the code can be copied directly into your project. Sub UnhideBlanks() ' ' UnhideBlanks Macro ' ActiveSheet.Unprotect Password:="sivle" If ActiveSheet.AutoFilterMode _ And ActiveSheet.FilterMode Then ActiveSheet.ShowAllData ElseIf ActiveSheet.AutoFilterMode = False Then ActiveSheet.Protect Password:="sivle", _ DrawingObjects:=True, _ Contents:=True, _ Scenarios:=True, _ AllowSorting:=True, _ AllowFiltering:=True End If End Sub -- Regards, OssieMac |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Select method failing | Excel Programming | |||
copy method of object failing | Excel Programming | |||
Select Method Failing | Excel Programming | |||
Publish method failing, can't understand why | Excel Programming | |||
add method of validation failing | Excel Programming |