Please Note: This article is written for users of the following Microsoft Excel versions: 97, 2000, 2002, and 2003. If you are using a later version (Excel 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Excel, click here: Unprotecting Groups of Worksheets.
Written by Allen Wyatt (last updated August 8, 2020)
This tip applies to Excel 97, 2000, 2002, and 2003
Excel allows you to protect and unprotect worksheets. The purpose, of course, is to allow others to use your workbook, but not to modify certain cells within each worksheet.
Since protection is done at a worksheet level, it can be major pain to step through each worksheet in a workbook and either protect or unprotect them. If you have 25 worksheets, you must activate each worksheet, do the protect or unprotect, and move on to the next one.
A less time-consuming method of protecting each worksheet in a workbook is to use a macro to do the actual work. The following macro will do the trick:
Sub ProtectAllSheets()
Dim ws As Worksheet
Dim sOrigSheet As String
Dim sOrigCell As String
Dim J As Integer
Application.ScreenUpdating = False
sOrigSheet = ActiveSheet.Name
sOrigCell = ActiveCell.Address
For Each ws In Worksheets
ws.Select
ws.Protect Password:="Password"
Next ws
Application.GoTo Reference:=Worksheets("" _
& sOrigSheet & "").Range("" & sOrigCell & "")
Application.ScreenUpdating = True
End Sub
The macro to unprotect all the worksheets is only slightly different:
Sub UnProtectAllSheets()
Dim ws As Worksheet
Dim sOrigSheet As String
Dim sOrigCell As String
Dim J As Integer
Application.ScreenUpdating = False
sOrigSheet = ActiveSheet.Name
sOrigCell = ActiveCell.Address
For Each ws In Worksheets
ws.Select
ws.Unprotect Password:="Password"
Next ws
Application.GoTo Reference:=Worksheets("" _
& sOrigSheet & "").Range("" & sOrigCell & "")
Application.ScreenUpdating = True
End Sub
While these macros will work just fine, there are a couple of caveats. First, you need to make sure that the Password variable in each macro is set to the proper password for your worksheets. (This assumes, of course, that all the worksheets use the same passwords.) The second caveat is that since the macro has to include the password, the overall security of your workbook may be compromised—anyone that can display the macros will know what the passwords are for your workbooks.
As a solution to this last problem, you could modify the macros so that they ask for a password to use in their work. The following would be the version of the macro that protects worksheets:
Sub ProtectAllSheetsPass()
Dim ws As Worksheet
Dim sOrigSheet As String
Dim sOrigCell As String
Dim J As Integer
Dim sPWord As String
Application.ScreenUpdating = False
sOrigSheet = ActiveSheet.Name
sOrigCell = ActiveCell.Address
sPWord = InputBox("What password?", "Protect All")
If sPWord > "" Then
For Each ws In Worksheets
ws.Select
ws.Protect Password:=sPWord
Next ws
End If
Application.GoTo Reference:=Worksheets("" _
& sOrigSheet & "").Range("" & sOrigCell & "")
Application.ScreenUpdating = True
End Sub
The macro displays an input box asking for the password. The same password is then used to protect every worksheet in the workbook. The same sort of change can be done to the macro that unprotects all the worksheets.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (2275) applies to Microsoft Excel 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Excel (Excel 2007 and later) here: Unprotecting Groups of Worksheets.
Excel Smarts for Beginners! Featuring the friendly and trusted For Dummies style, this popular guide shows beginners how to get up and running with Excel while also helping more experienced users get comfortable with the newest features. Check out Excel 2019 For Dummies today!
When creating macros, it is helpful to know what is going on within the macro itself in case an error crops up. Here's ...
Discover MoreGot a macro that you need to run on each of a number of workbooks? Excel provides a number of ways to go about this task, ...
Discover MoreWant to add a bunch of blank rows to a your data and have those rows interspersed among your existing rows? Here's a ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)
Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our ExcelTips site focusing on the ribbon interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments