Unprotecting sheet did not prompt for password

M

mhng

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
 
N

NickHK

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
 
M

mhng

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
 
S

stevebriz

mhng said:
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


Try this: I did and it worked for me


replaceWS.Unprotect (PW_unlock)

with
WS.Unprotect
 
N

NickHK

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
 
M

mhng

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
 
N

NickHK

I am confused as to what you want to achieve.
Your subject line is "Unprotecting sheet did not prompt for password" and
now you know that is because you supplied the password when you called
..UnProtect.
If the WS is protected with a password, either you (the progarmmer) include
it in your code, or the user will be asked to enter it
You can call .Protect with a password and UnProtect without, if that is what
you mean.

You can easily test if you Protect code work; try and format some cell after
running the code.

I don't see what the problem is.

NickHK
 
M

mhng

Sorry to have confused you.

To simplify the problem, my goal is to secure my spreadsheet to disallow
users the ability to unprotect sheets. If they wanted to unprotect the
sheets, they will need to enter a valid password.

Current scenario, Admin protect sheets with a password. Users unprotect
sheets without password.

Thanks for your help.
 
H

halimnurikhwan

Hi All,

sorry interupting, in order to try make it sure and clear,
I think if we protect sheet(s) with a password by VBA or not,
we'll still promted by password confirmation automatically,
but if we protect witout password we'll never promted a password

is that r8?

thanks,

Halim


mhng menuliskan:
 
N

NickHK

If the WS is password protected by the admin, the user WILL be asked for the
password to unprotect.
You do know that code is available the will break the protection password in
less than a second.

NickHK
 

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