Hallo,
wenn Du in allen Blättern die Checkboxen ein/ausblenden willst, musst Du auch darauf referenzieren und nicht immer auf das ActiveSheet.
Außerdem kannst Du noch etwas Code einsparen. Teste mal folgendes Beispiel.
Hierbei wird unterstellt, dass es auf jedem Blatt einen Wert in P4 gibt, ansonsten hier das "Blatt.Range("P4")" durch ActiveSheet.Range("P4") ersetzen.
Code:
01
02
03
04
05
06
07
08
09
10
11
12 |
|
Private Sub Workbook_Open()
ActiveWorkbook.Unprotect Password:="XXX"
Call Schutz_aufheben ' Entsperrt alle Tabellenblätter
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Visible = True
Blatt.Shapes("CheckBox1").Visible = Not Blatt.Range("P4") = "Wahr"
Next Blatt
Call Schutz ' Sperrt alle Tabellenblätter
ActiveWorkbook.Protect Password:="XXX"
End Sub
|
_________
viele Grüße
Karl-Heinz
|