Use a password in VBA ActiveSheet.protect & ActiveSheet.unprotect?

J

Jim K.

I have about a dozen worksheets in a workbook that are password protected. I
want to use a macro to unprotect each sheet (one at a time), lock or unlock
some cells, and then password protect the worksheet before moving to the next
sheet. The password is the same for all the worksheets. I would like the
macro to prompt one time for the password and then use that input to perform
the unprotect and protect. I got the VBA code below when I recorded a macro.
Unfortunately, using this code, the user is prompted each time the worksheet
is unprotected, the cell locks are set, and then the worksheet is protected
again but without the password.

Sheets("Special Loans").Select
ActiveSheet.Unprotect
Cells.Select
Range("M1").Activate
Selection.Locked = True
Selection.FormulaHidden = False
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.Save
 
N

Norman Jones

Hi Jim,

Try something like:

'===========>>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim PWORD As String

PWORD = InputBox(Prompt:="Insert password")

Set WB = ThisWorkbook

For Each SH In WB.Worksheets
With SH
On Error GoTo XIT
.Unprotect PWORD
With .Range("M1")
.Locked = True
.FormulaHidden = False
End With
.Protect password:=PWORD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End With
Next SH
WB.Save
Exit Sub

XIT:
MsgBox Prompt:="Password not recognised"
End Sub
'<<===========
 

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