View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Enable outlining in a protected worksheet

You have to combine the code into one larger routine.

If you wanted to do the same kind of thing to a couple of sheets:

Option Explicit
Sub auto_open()
With Worksheets("sheet1")
.Protect Password:="hi", userinterfaceonly:=True
.EnableOutlining = True
End With

With Worksheets("sheet2")
.Protect Password:="nothi", userinterfaceonly:=True
.EnableOutlining = True
End With

'more code you want here
End Sub

If the passwords were the same, you could actually loop through the worksheets
and not have so much almost duplicated code:

Option Explicit
Sub auto_open()
Dim wks as worksheet
for each wks in thisworkbook.worksheets
with wks
.Protect Password:="hi", userinterfaceonly:=True
.EnableOutlining = True
End With
next wks

'more code you want here
End Sub

johnb wrote:

Thanks Dave, this solved my problem! I have another question please.
Auto_Open works great in one worksheet of a workbook, however if I am using
this in multiuple worksheets in a single workbook, I get the error message
"Ambiguous name detected: Auto_Open," due to the same name "Auto_Open" being
used in different general modules within the same workbook. If I
differentiate the name however, it will not recognize the Auto_Open command
and then I have to run the macro manually. Is there a way around this?
Thanks.

"Dave Peterson" wrote:

By naming the subroutine Auto_Open and putting it in a General module (not
behind the ThisWorkbook module and not behind a worksheet module), the routine
should run whenever the user opens the workbook (assuming that they allow macros
to run at startup).

And take a look at the left hand margin above those +'s and -'s. You'll see
numbers in little boxes. Try clicking on them and watch what happens to the
hidden/shown rows.



johnb wrote:

I currently have the following code in my protected worksheet, which enables
outlining. I have also created a button titled 'outline' to run the macro so
the user does not have to go to the tools/macros/run.

Option Explicit
Sub auto_open()
With Worksheets("sheet1")
.Protect Password:="hi", userinterfaceonly:=True
.EnableOutlining = True
End With
End Sub

My worry however is that once the macro is run and outlining is enabled,
some novice users will still find it tedious to click on every '+' and "-" to
show/hide all the detail, especially if there are a lot of groupings. Is
there code on a protected worksheet that will show/hide all the detail at
once, equivalent to selecting ctrl A and then Data/Group and outline/show &
hide detail on an unprotected sheet? Thank you.


--

Dave Peterson


--

Dave Peterson