Unprotect and Protect sheet within macro

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

The following causes "Variable Not Defined" message
NOTE: Hide rows macro works great. I can't get the unprotect and protect to
work
if spite of numerous attempts at understanding user group info and the
microsoft help. Obviously a lot to learn yet.
Is part of the problem the positioning of the unprotect statement?
This macro will be used for a number of worksheets/workbooks so I can't have
the statement directly identify the worksheet name (since it is different in
each workbook).


Option Explicit
Sub Hide_Rows()
' Hide_Rows Macro
' January 11, 2005
' From Frank Kabel
' Keyboard Shortcut: NONE

Worksheet.Unprotect Password:="password"

Dim RowNdx As Long
Dim LastRow As Long
Application.ScreenUpdating = False
LastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
For RowNdx = LastRow To 1 Step -1
If Cells(RowNdx, "B").Value = "x" Then
Rows(RowNdx).Hidden = True
End If
Next RowNdx
Application.ScreenUpdating = True

Worksheet.Protect Password:="password"

End Sub
 
Hi John

there's no such thing as "worksheet" - if you use "worksheets" you have to
identify which worksheet you're talking about so that won't help you much ..
try instead (for both the protect & unprotect)

Activesheet.protect Password:="password"


Cheers
julieD
 
Option Explicit
Sub Hide_Rows()
' Hide_Rows Macro
' January 11, 2005
' From Frank Kabel
' Keyboard Shortcut: NONE

Activesheet.Unprotect Password:="password"

Dim RowNdx As Long
Dim LastRow As Long
Application.ScreenUpdating = False
LastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
For RowNdx = LastRow To 1 Step -1
If Cells(RowNdx, "B").Value = "x" Then
Rows(RowNdx).Hidden = True
End If
Next RowNdx
Application.ScreenUpdating = True

ActiveSheet.Protect Password:="password"

End Sub
 
Thanks so much - Works great!!
JFS

Tom Ogilvy said:
Option Explicit
Sub Hide_Rows()
' Hide_Rows Macro
' January 11, 2005
' From Frank Kabel
' Keyboard Shortcut: NONE

Activesheet.Unprotect Password:="password"

Dim RowNdx As Long
Dim LastRow As Long
Application.ScreenUpdating = False
LastRow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
For RowNdx = LastRow To 1 Step -1
If Cells(RowNdx, "B").Value = "x" Then
Rows(RowNdx).Hidden = True
End If
Next RowNdx
Application.ScreenUpdating = True

ActiveSheet.Protect Password:="password"

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

Back
Top