detecting a proteced workbook

F

Fan924

I can hide a single Worksheet.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets(1).Visible = False
' Worksheets(1).Visible = True
End Sub

I want to hide a single Worksheet, but only when the Workbook is
protected. How do I detect a protected workbook?
 
M

Mike H

Hi,

Try this

With ActiveWorkbook
IsProtected = .ProtectStructure Or .ProtectWindows
End With

Mike
 
F

Fan924

Worksheets(4).Visible = False
If ActiveWorkbook.ProtectStructure = False Then
Worksheets(4).Visible = True
End If

But it doesn't work. After the workbook is protected, you are blocked
from changing the sheet visiility.
 
M

Mike H

Hi,

You asked how to detect if a workbook is protected and the answer I gave you
does that. You must un-protect to hide the sheet then r-protect

Sub Sonic()
With ActiveWorkbook
isprotected = .ProtectStructure Or .ProtectWindows
End With
If isprotected Then
ActiveWorkbook.Unprotect
Sheets("Sheet1").Visible = False
ActiveWorkbook.Protect
Exit Sub
End If
End Sub

Mike
 
M

Mike H

Perhaps your looking for something like this

Sub Sonic()
With ActiveWorkbook
isprotected = .ProtectStructure Or .ProtectWindows
End With
If isprotected Then
ActiveWorkbook.Unprotect
Sheets("Sheet1").Visible = False
ActiveWorkbook.Protect Structure:=True
Else
Sheets("Sheet1").Visible = True
End If
End Sub

Mike
 

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