ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Strange worksheet protection behavior (https://www.excelbanter.com/excel-programming/362741-strange-worksheet-protection-behavior.html)

Patrick Simonds

Strange worksheet protection behavior
 
Using Excel 2007 Beta, and I use the code below during the running of my
macro. The strange thing is that before I exit the workbook I cannot select
locked cells (this is as it should be, only want to select unlocked cells)
but when the workbook is reopened, worksheet protection is still turned on,
but I can now select locked cells.



Sub Protect_All_Sheets()
'
' Protect_All_Sheets
'

'

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub



Norman Jones

Strange worksheet protection behavior
 
Hi Patrick,

Try setting the protection in the workbook open event.


---
Regards,
Norman



"Patrick Simonds" wrote in message
...
Using Excel 2007 Beta, and I use the code below during the running of my
macro. The strange thing is that before I exit the workbook I cannot
select locked cells (this is as it should be, only want to select unlocked
cells) but when the workbook is reopened, worksheet protection is still
turned on, but I can now select locked cells.



Sub Protect_All_Sheets()
'
' Protect_All_Sheets
'

'

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub




Patrick Simonds

Strange worksheet protection behavior
 
Okay I placed the code under workbook open, but, it only protects the active
sheet when you open the workbook. I had hoped it would work on all of the
worksheets.



Private Sub Workbook_Open()

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub


"Norman Jones" wrote in message
...
Hi Patrick,

Try setting the protection in the workbook open event.


---
Regards,
Norman



"Patrick Simonds" wrote in message
...
Using Excel 2007 Beta, and I use the code below during the running of my
macro. The strange thing is that before I exit the workbook I cannot
select locked cells (this is as it should be, only want to select
unlocked cells) but when the workbook is reopened, worksheet protection
is still turned on, but I can now select locked cells.



Sub Protect_All_Sheets()
'
' Protect_All_Sheets
'

'

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub






Norman Jones

Strange worksheet protection behavior
 
Hi Patrick,

Okay I placed the code under workbook open, but, it only protects the
active sheet when you open the workbook. I had hoped it would work on all
of the worksheets.


Your problem is that:

ActiveSheet.EnableSelection = xlUnlockedCells


always refers to the active sheet.

Try instead:

'=============
Private Sub Workbook_Open()
Dim SH As Worksheet
Const PWORD As String = "ABC" '<<=== CHANGE

For Each SH In Me.Worksheets
With SH
.Protect Password:=PWORD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
.EnableSelection = xlUnlockedCells
End With
Next SH

End Sub
'<<=============

---
Regards,
Norman



"Patrick Simonds" wrote in message
...
Okay I placed the code under workbook open, but, it only protects the
active sheet when you open the workbook. I had hoped it would work on all
of the worksheets.



Private Sub Workbook_Open()

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub


"Norman Jones" wrote in message
...
Hi Patrick,

Try setting the protection in the workbook open event.


---
Regards,
Norman



"Patrick Simonds" wrote in message
...
Using Excel 2007 Beta, and I use the code below during the running of my
macro. The strange thing is that before I exit the workbook I cannot
select locked cells (this is as it should be, only want to select
unlocked cells) but when the workbook is reopened, worksheet protection
is still turned on, but I can now select locked cells.



Sub Protect_All_Sheets()
'
' Protect_All_Sheets
'

'

With ThisWorkbook
.Worksheets("June - August").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("September - November").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("December - February").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
.Worksheets("March - May").Protect DrawingObjects:=True,
Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End With

End Sub








Norman Jones

Strange worksheet protection behavior
 
Hi Patrick,

Replace the suggested code with:

'=============
Private Sub Workbook_Open()
Dim SH As Worksheet
Const PWORD As String = "ABC" '<<=== CHANGE

For Each SH In Me.Worksheets
With SH
.Unprotect password:=PWORD
.EnableSelection = xlUnlockedCells
.Protect password:=PWORD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End With
Next SH

End Sub
'<<=============

---
Regards,
Norman



Patrick Simonds

Strange worksheet protection behavior
 
Thanks for your time and code

"Norman Jones" wrote in message
...
Hi Patrick,

Replace the suggested code with:

'=============
Private Sub Workbook_Open()
Dim SH As Worksheet
Const PWORD As String = "ABC" '<<=== CHANGE

For Each SH In Me.Worksheets
With SH
.Unprotect password:=PWORD
.EnableSelection = xlUnlockedCells
.Protect password:=PWORD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End With
Next SH

End Sub
'<<=============

---
Regards,
Norman





All times are GMT +1. The time now is 05:03 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com