Ungroup "+" on a protected sheet

R

Ram B

Does anyone know how to protect a worksheet and still have access to the
"Group/Ungroup" functionality on the left ? Thanks!
 
D

Dave Peterson

If you already have the outline/subtotals/autofilter applied, you can protect
the worksheet in code (auto_open/workbook_open??).

Option Explicit
Sub auto_open()
With Worksheets("sheet1")
.Protect Password:="hi", userinterfaceonly:=True
.EnableOutlining = True
'.EnableAutoFilter = True
'If .FilterMode Then
' .ShowAllData
'End If
End With
End Sub

It needs to be reset each time you open the workbook. (Earlier versions of
excel don't remember it after closing the workbook. IIRC, xl2002+ will remember
the allow autofilter setting under tools|Protection|protect sheet, but that
won't help when you're filtering via code.)
 
R

Ram B

When I protect the sheet I check "Format Columns" & "Format Rows" that will
allow users to change the height of rows and width of columns. With auto_open
it looks like it overrides these choices. But the Filtering works. Is there a
way I can get all of them to work?

Thanks

Ram
 
D

Dave Peterson

Record a macro when you change the protection on the worksheet and change the
settings you want.

Then include them in .protect line

..Protect Password:="hi", userinterfaceonly:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True
 
M

Michelle Thompson

If I have 10 tabs and want to use this code on all of them, how do I write
all of the sheets into it? (i.e. i want the line to read With
Worksheets("00,01,02,etc")--but I get an error every way I try to put in
multiple sheets). Any ideas?
 
D

Dave Peterson

Option Explicitdim wks as worksheet
for each wks in thisworkbook.worksheets
If you wanted to avoid any sheets (based on a name):

dim wks as worksheet
for each wks in thisworkbook.worksheetsselect case lcase(.name)
case is = lcase("sheet1"),lcase("sheet99")
'do nothing, skip it
case else

Michelle said:
If I have 10 tabs and want to use this code on all of them, how do I write
all of the sheets into it? (i.e. i want the line to read With
Worksheets("00,01,02,etc")--but I get an error every way I try to put in
multiple sheets). Any ideas?
 
G

Gord Dibben

Michelle

Go back to your other post and see one reply.

If you remember where it is.

Best to post your own questions rather than piggy-backing on other people's
postings.


Gord Dibben MS Excel MVP

If I have 10 tabs and want to use this code on all of them, how do I write
all of the sheets into it? (i.e. i want the line to read With
Worksheets("00,01,02,etc")--but I get an error every way I try to put in
multiple sheets). Any ideas?
 

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.

Ask a Question

Top