View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
mhng mhng is offline
external usenet poster
 
Posts: 9
Default Unprotecting sheet did not prompt for password

Thanks for your advice. I have removed the password but I don't think it will
fix my problem.
When sheets are protected, anyone can easily go to any sheets, select
TOOL\Protection\Unprotect Sheet, and the sheet will be unprotected without
even prompting for password. This is where my problem sits.
The code below to unlock my sheets is merely a way to allow quick
unprotecting to all sheets rather than manually unprotecting sheet by sheet.

I have a strong feeling that my protecting code is not working properly. If
that's the case, then what is it?
Private Sub LockEM_Click()
Dim i As Long
Dim WS As Worksheet
g_mStrPW = InputBox("Password:")

On Error GoTo MyErr
For Each WS In ActiveWorkbook.Worksheets
WS.Protect (g_mStrPW)
If WS.Protection.AllowUsingPivotTables = False Then
WS.Protect AllowUsingPivotTables:=True
WS.Protect AllowFiltering:=True
End If
Next
MsgBox i & " errors found", vbInformation

Exit Sub
MyErr:
i = i + 1
Resume Next
End Sub


"NickHK" wrote:

From your original post: "the sheet gets unprotected without prompting for
password".
That's hardly surprising as you are including the password in your unprotect
code.
Remove the password and add error handling to deal with the situations when
the PW is wrong.

NickHK

"mhng" wrote in message
...
Private Sub UnLockEm_Click()
Dim i As Long
Dim PW_unlock As String
Dim WS As Worksheet
PW_unlock = InputBox("Password:")

On Error GoTo MyErr
If PW_unlock < g_mStrPW Then
MsgBox "Error: Failed to unprotect worksheets! "
Exit Sub
Else
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect (PW_unlock)
Next
MsgBox i & " errors while unprotecting", vbInformation
Exit Sub
MyErr:
i = i + 1
Resume Next
End If
End Sub

"NickHK" wrote:

Show your Uprotect code.

NickHK

"mhng" wrote in message
...
I know because all my locked region work. They won't allow any editing

at
all.

"NickHK" wrote:

How do know they were protected in the first place ?
WS.Protect g_mStrPW
Note no brackets.
I do not use a version of Excel that supports .Protection etc so I
cannot
tell if that is correct.
But basically you code is OK.

NickHK

"mhng" wrote in message
...
I have automated sheets to be protected by a global variable

g_mStrPW.
However, when trying to unprotect individual sheet, the sheet gets
unprotected without prompting for password. This is bad and made
protecting
sheets meaningless.

Here is the code used to protect all sheets.

Private Sub LockEM_Click()
Dim i As Long
Dim WS As Worksheet
g_mStrPW = InputBox("Password:")

On Error GoTo MyErr
For Each WS In ActiveWorkbook.Worksheets
WS.Protect (g_mStrPW)
If WS.Protection.AllowUsingPivotTables = False Then
WS.Protect AllowUsingPivotTables:=True
WS.Protect AllowFiltering:=True
End If
Next
MsgBox i & " errors found", vbInformation

Exit Sub
MyErr:
i = i + 1
Resume Next
End Sub