Private Sub Workbook_Open()
Dim vUser As String
vUser = Environ("UserName")
Application.ScreenUpdating = False
ActiveWindow.WindowState = xlMaximized
Select Case vUser
Case Is = "JPW", "PB", "CS"
On Error Resume Next
ThisWorkbook.Unprotect Password:="St0pChang1ng"
For Each sh In Sheets
sh.Unprotect Password:="St0pChang1ng"
Next
On Error Resume Next
Case Else
On Error Resume Next
For Each sh In Sheets
sh.Protect Password:="St0pChang1ng", AllowSorting:=True, AllowFiltering:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
ThisWorkbook.Protect Password:="St0pChang1ng", Structure:=True, Windows:=False
On Error GoTo 0
MsgBox "Cells Protected (you may still Filter cells); see JPW if you need write access"
End Select
Application.ScreenUpdating = True
Me.Saved = True
End Sub
Private Sub Workbook_BeforeClose(CANCEL As Boolean)
Application.ScreenUpdating = False
On Error Resume Next
For Each sh In Sheets
sh.Protect Password:="St0pChang1ng", AllowSorting:=True, AllowFiltering:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
ThisWorkbook.Protect Password:="St0pChang1ng", Structure:=True, Windows:=False
On Error GoTo 0
ActiveWindow.WindowState = xlMaximized
Application.ScreenUpdating = True
End Sub