AW: Druck von ausgeblendeten Blättern die 2.
26.06.2010 09:44:50
ausgeblendeten
Moin Philipp,
dann muss du in allen Makros, die Aktionen ausführen, die im geschützten Blatt nicht zulässig sind, vorübergehend den Blattschutz deaktivieren.
Wenn nur ein oder zwei Makros betroffen sind, dann kannst du die Unprotect bzw. Protect-Anweisungen auch direkt einfügen, ansonsten empfehle ich hier mit einer Funktion zu arbeiten wie im nachfolgenden Beispiel. Das ist pflegeleichter, speziell wenn du den Blattschutz mit zusätzlichen Optionen setzen muss oder das Kennwort geändert werden soll.
Gruß
Franz
'Diese Funktion in einem allgemeinen Modul speichern
Function Blattschutz(EIN As Boolean, Optional wks As Worksheet)
Const stext = "" 'oder sText = "MyPassword" wenn Blatt mit Kennwort geschützt ist
If wks Is Nothing Then Set wks = ActiveSheet
If EIN = True Then
wks.Protect Password:=stext 'falls erforderlich weitere Optionen setzen
Else
wks.Unprotect Password:=stext
End If
End Function
'Beispiel für Aufruf/Verwendung der Funktion
Sub Zellenausblenden()
'Blattschutz deaktivieren
' Worksheets("Datenaufnahme").Unprotect 'oder .Unprotect "Mypassword"
Call Blattschutz(EIN:=False, wks:=Worksheets("Datenaufnahme"))
'Aktionen die in geschütztem Blatt nicht durchgeführt werden können
With Worksheets("Datenaufnahme")
.Range("E:L").EntireColumn.Hidden = True
.Range(.Rows(3), .Rows(20)).Hidden = True
End With
'Blattschutz wieder aktivieren
' Worksheets("Datenaufnahme").Protect 'oder .Protect "Mypassword" - ggf mit weiteren Optionen
Call Blattschutz(EIN:=True, wks:=Worksheets("Datenaufnahme"))
End Sub
Sub Zelleneinblenden()
'Blattschutz deaktivieren
' Worksheets("Datenaufnahme").Unprotect 'oder .Unprotect "Mypassword"
Call Blattschutz(EIN:=False, wks:=Worksheets("Datenaufnahme"))
'Aktionen die in geschütztem Blatt nicht durchgeführt werden können
With Worksheets("Datenaufnahme")
.Range(.Rows(3), .Rows(20)).Hidden = False
.Range("E:L").EntireColumn.Hidden = False
End With
'Blattschutz wieder aktivieren
' Worksheets("Datenaufnahme").Protect 'oder .Protect "Mypassword" - ggf mit weiteren Optionen
Call Blattschutz(EIN:=True, wks:=Worksheets("Datenaufnahme"))
End Sub