Can I protect all excel tabs in a file with one password entry?

G

Guest

I have spreadsheets with multiple tabs - I presently have to password protect
each tab separately. I'm looking for a way to protect all tabs with one
password entry. i am not share the files, but others do view them and I
don't want changes made.
 
P

Paul B

Indiana, you can use a macro like this,

Sub protect_sheets()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

ws.Protect password:="123"

Next ws

End Sub
--
Paul B
Always backup your data before trying something new
Please post any response to the newsgroups so others can benefit from it
Feedback on answers is always appreciated!
Using Excel 2002 & 2003
 
G

Guest

Paul B - Thanks for your help! The macro worked per your input below.
impressive to see 30 worksheets protected at once.
I am using Excel 2000

Thanks again!
 
P

Paul B

Your welcome
--
Paul B
Always backup your data before trying something new
Please post any response to the newsgroups so others can benefit from it
Feedback on answers is always appreciated!
Using Excel 2002 & 2003
 
D

Dave Peterson

Just use

ws.unprotect password:="123"

to unprotect the sheets. They all share the same password, right?
 
J

Jen@ccbcc

If I simply replace the protect with unprotect, I receive the following error
message:

Compile error: Expected function or variable

Also...is there a way to perform these macros without requiring a password?
 
D

Dave Peterson

If you protect the sheets without supplying a password, then the code won't need
to use a password, either.

But if you use a password manually, you'll need it in code, too.

I think you made a typo when you made that suggested change.

Post your current code and indicate the line that caused the error.
 
J

Jen@ccbcc

Sub Protect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="123"
Next ws
End Sub

Sub Unprotect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:="123"
Next ws
End Sub

Each time I attempt to run the unprotect macro, I receive an error which
points to the line "ws.Unprotect Password:="123"
 
D

Dave Peterson

Your code worked fine for me.

Did you create another sub or function and name it Unprotect? If you did, then
change the name of that sub/function to something else.



Jen@ccbcc said:
Sub Protect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="123"
Next ws
End Sub

Sub Unprotect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:="123"
Next ws
End Sub

Each time I attempt to run the unprotect macro, I receive an error which
points to the line "ws.Unprotect Password:="123"
 
E

EugeniaP

Does anyone know how to incorporate the allow-users-to-edit-certain-ranges
part into this protection macro?

Thank you!
 
H

hollyc83

I have no understanding of writing VB, but is it possilbe to write a macro
that will password protect all sheets in a workbook simultaneously with all
of the following options checked (and all others cleared): "Select unlocked
cells", "Format Rows"? Thanks in advance for any help on this issue. I can
copy and paste if someone else can write the code.
 
G

Gord Dibben

Sub ProtectAllSheets()
Application.ScreenUpdating = False
Dim N As Single
For N = 1 To Sheets.Count
With Sheets(N)
.Protect Password:="justme", AllowFormattingRows:=True
.EnableSelection = xlUnlockedCells
End With
Next N
Application.ScreenUpdating = True
End Sub

You might want to unprotect them all at some point.........

Sub UnprotectAllSheets()
Application.ScreenUpdating = False
Dim N As Single
For N = 1 To Sheets.Count
Sheets(N).Unprotect Password:="justme"
Next N
Application.ScreenUpdating = True
End Sub


Gord Dibben MS Excel MVP
 
S

Sheetsie

Paul B - this is great stuff. How would I alter that statement to indicate a
specified range of columns and rows? e.g. I want to protect Column B, and
Rows 2 and 3 on all sheets.
 
G

Gord Dibben

First we unlock all cells then lock column B and rows 2 & 3

Note: the protection of column B extends to all cells in that column, not
just rows 2 and 3

Is that that you want?

Sub protect_sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
.Cells.Locked = False
.Range("B:B,2:3").Locked = True
.Protect Password:="123"
End With
Next ws
End Sub


Gord Dibben MS Excel MVP
 
K

ktykerr

Hi, I'm trying to run this macro code in my excel file since I also need and
wanted to protect several sheets at a time. However, after running it, only
the first sheet was protected and the rest is still unprotected.
Can anyone help me on this please? Thanks in advance.


Jen@ccbcc said:
Sub Protect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="123"
Next ws
End Sub

Sub Unprotect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:="123"
Next ws
End Sub

Each time I attempt to run the unprotect macro, I receive an error which
points to the line "ws.Unprotect Password:="123"
 
K

ktykerr

Hi, I'm trying to run this macro code in my excel file since I also need and
wanted to protect several sheets at a time. However, after running it, only
the first sheet was protected and the rest is still unprotected.
Can anyone help me on this please? Thanks in advance.


Jen@ccbcc said:
Sub Protect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="123"
Next ws
End Sub

Sub Unprotect_All_Sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect Password:="123"
Next ws
End Sub

Each time I attempt to run the unprotect macro, I receive an error which
points to the line "ws.Unprotect Password:="123"
 

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