ich habe eine Mappe mit mehreren Blättern.
Zum gleichzeitigen Aufheben bzw Setzen des Blattschutzes will ich dieses Makro im Modul "Blattschutz" verwenden:
Option Explicit
Sub KeinSchutz()
Dim intBlatt As Integer
Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
For intBlatt = 1 To Sheets.Count 'Schleife für alle Tabellenblätter:
If Sheets(intBlatt).ProtectContents = True Then Schutz_Aufheben intBlatt 'Wenn geschützt dann Schutz aufheben.
Next
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
End Sub Sub Schutz_Aufheben(varBlatt As Variant)
Sheets(varBlatt).Unprotect
End Sub Sub Schutz()
Dim intBlatt As Integer
Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
For intBlatt = 1 To Sheets.Count 'Schleife für alle Tabellenblätter:
If Sheets(intBlatt).ProtectContents = False Then Schutz_Herstellen intBlatt 'Wenn _
ungeschützt dann Schutz wieder herstellen.
Sheets(intBlatt).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(intBlatt).EnableSelection = xlNoRestrictions
Next
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
End Sub Sub Schutz_Herstellen(varBlatt As Variant)
Sheets(varBlatt).Protect
End Sub Wenn ich über Alt+F8 den globalen Schutz aller Blätter mit dem Modul "Blattschutz" aufheben will, kommt die Fehlermeldung:
Laufzeitfehler 1004:
Methode 'Intersect' für das Objekt '_Global' ist fehlgeschlagen.
Wenn ich dann unter "Diese Arbeitsmappe" nachschaue
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'ActiveSheet.Unprotect '--bei Zellwechsel wird Schutz aufgehoben
Dim r As Long
Dim c As Integer
If Not Intersect(Target, Range("B5:H35")) Is Nothing Then 'hier die Pruefung
ActiveSheet.Unprotect '--bei Zellwechsel wird Schutz aufgehoben
Range("B5:H35").Interior.ColorIndex = xlNone
r = Selection.Row
' c = Selection.Column
Range(Cells(r, 2), Cells(r, 8)).Interior.ColorIndex = 35
' Range(Cells(2, c), Cells(8, c)).Interior.ColorIndex = 35
ActiveSheet.Protect '--Schutz setzen wenn Zellwechsel innerhalb der Range
ActiveSheet.EnableSelection = xlUnlockedCells '--gesperrte Zellen werden nicht angewählt
End If
End Sub
ist die Zeile "If Not Intersect . . ." gelb unterlegt!Läuft da was schief?
Gruß
mike49