View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Protect multiple selected sheets?

That looks ok to me!



Bassman62 wrote:

My next goal will be to set all of the selected sheets to the same state
of protection.

Got it! - Based on the state of the first of the SelectedSheets.
Thanks again to Dave Peterson.

Sub Protect_Switch()
Dim sh As Object
Dim mySelectedSheets As Object
Set mySelectedSheets = ActiveWindow.SelectedSheets
Set sh = mySelectedSheets.Item(1)
mySelectedSheets.Item(1).Select 'unselect all the sheets but one
If sh.ProtectContents = True Then
For Each sh In mySelectedSheets
sh.Unprotect
Next sh
Else
For Each sh In mySelectedSheets
sh.Protect DrawingObjects:=True, _
Contents:=True, Scenarios:=False, _
AllowSorting:=True, AllowFiltering:=True
Next sh
End If
mySelectedSheets.Select 'reselect the sheets.
End Sub

"Bassman62" wrote in message
...

"Dave Peterson" wrote in message
...
debug.print is use to print something (text) in the immediate window.

Activewindow.selected sheets doesn't have a value/text that could be
printed.


I'd try something like:

Option Explicit
Sub Protect_Switch()

Dim sh As Object
Dim mySelectedSheets As Object

Set mySelectedSheets = ActiveWindow.SelectedSheets

mySelectedSheets.Item(1).Select 'unselect all the sheets but one

For Each sh In mySelectedSheets
If sh.ProtectContents = True Then
sh.Unprotect
Else
sh.Protect DrawingObjects:=True, _
Contents:=True, Scenarios:=False, _
AllowSorting:=True, AllowFiltering:=True
End If
Next sh

mySelectedSheets.Select 'reselect the sheets.
End Sub



Bassman62 wrote:

I have two questions but I think the first answer will solve the second.
First: Why does the following line error out with "Run-time error '450':
Wrong number of arguments or invalid property assignment?
Debug.Print ActiveWindow.SelectedSheets (I thought this line earlier
today?)

Now the 2nd question;
I'm trying to protect / unprotect a group of selected sheets using the
following code but it errors out if more than one worksheet is selected
with
"Run-time error '1004': Method 'Protect' (or 'Unprotect') of object
'_Worksheet' failed.
Sub Protect_Switch()
' Alternate WorkSheet Protection ON or OFF
Dim sh As Worksheet
For Each sh In ActiveWindow.SelectedSheets
If sh.ProtectContents = True Then
sh.Unprotect
Else
sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:= _
False, AllowSorting:=True, AllowFiltering:=True
End If
Next sh
End Sub

--

Dave Peterson




--

Dave Peterson