Hallo.
Ich habe eine tabelle mit 13 tabellenblättern, für jeden monat eins. Ich bin jetzt dabei die blätter mit einem makro so zu beeinflussen das sie nur eingeblendet werden wenn der jeweilige monat angezeigt wird. das klappt soweit ganz gut. nur wenn am anfang des monats der nächste monat angezeigt werden soll erscheint der Fehler 1004 " Die Visible-eigenschaft des Worksheet-Objekt kann nicht festgestellt werden".
Jedes einzelne Blatt ist schreibgeschützt.
In einem weiteren Blatt (Makro)liegt eine Tabelle mit der Monatsberechnung.
Ich habe folgende makro geschrieben. Was ist dort falsch?
Private Sub Worksheet_Calculate() If Range("Makro!c5").Value = "ja" Then ActiveWorkbook.Sheets("januar").Unprotect Password:="" Sheets("januar").Visible = True ActiveWorkbook.Sheets("januar").Protect Password:="" Else Sheets("januar").Visible = False End If If Range("Makro!c6").Value = "ja" Then ActiveWorkbook.Sheets("februar").Unprotect Password:="" Sheets("februar").Visible = True ActiveWorkbook.Sheets("februar").Protect Password:="" Else Sheets("februar").Visible = False End If If Range("Makro!c7").Value = "ja" Then ActiveWorkbook.Sheets("märz").Unprotect Password:="" Sheets("märz").Visible = True ActiveWorkbook.Sheets("märz").Protect Password:="" Else Sheets("märz").Visible = False End If If Range("Makro!c8").Value = "ja" Then ActiveWorkbook.Sheets("april").Unprotect Password:="" Sheets("april").Visible = True ActiveWorkbook.Sheets("april").Protect Password:="" Else Sheets("april").Visible = False End If If Range("Makro!c9").Value = "ja" Then ActiveWorkbook.Sheets("mai").Unprotect Password:="" Sheets("mai").Visible = True ActiveWorkbook.Sheets("mai").Protect Password:="" Else Sheets("mai").Visible = False End If If Range("Makro!c10").Value = "ja" Then ActiveWorkbook.Sheets("juni").Unprotect Password:="" Sheets("juni").Visible = True ActiveWorkbook.Sheets("juni").Protect Password:="" Else Sheets("juni").Visible = False End If If Range("Makro!c11").Value = "ja" Then ActiveWorkbook.Sheets("juli").Unprotect Password:="" Sheets("juli").Visible = True ActiveWorkbook.Sheets("juli").Protect Password:="" Else Sheets("juli").Visible = False End If If Range("Makro!c12").Value = "ja" Then ActiveWorkbook.Sheets("august").Unprotect Password:="" Sheets("august").Visible = True ActiveWorkbook.Sheets("august").Protect Password:="" Else Sheets("august").Visible = False End If If Range("Makro!c13").Value = "ja" Then ActiveWorkbook.Sheets("september").Unprotect Password:="" Sheets("september").Visible = True ActiveWorkbook.Sheets("september").Protect Password:="" Else Sheets("september").Visible = False End If If Range("Makro!c14").Value = "ja" Then ActiveWorkbook.Sheets("oktober").Unprotect Password:="" Sheets("Oktober").Visible = True ActiveWorkbook.Sheets("oktober").Protect Password:="" Else Sheets("oktober").Visible = False End If If Range("Makro!c15").Value = "ja" Then ActiveWorkbook.Sheets("november").Unprotect Password:="" Sheets("november").Visible = True ActiveWorkbook.Sheets("november").Protect Password:="" Else Sheets("Oktober").Visible = False End If If Range("Makro!c16").Value = "ja" Then ActiveWorkbook.Sheets("dezember").Unprotect Password:="" Sheets("dezember").Visible = True ActiveWorkbook.Sheets("dezember").Protect Password:="" Else Sheets("dezember").Visible = False End If Sheets("makro").Visible = False End Sub
Private Sub Worksheet_Calculate() If Range("c5").Value = "ja" Then Sheets("januar").Visible = True Else Sheets("januar").Visible = False End If Sheets("Muster").Visible = True If Range("c6").Value = "ja" Then Sheets("februar").Visible = True Else Sheets("februar").Visible = False End If Sheets("Muster").Visible = True If Range("c7").Value = "ja" Then Sheets("märz").Visible = True Else Sheets("märz").Visible = False End If Sheets("Muster").Visible = True If Range("c8").Value = "ja" Then Sheets("april").Visible = True Else Sheets("april").Visible = False End If Sheets("Muster").Visible = True If Range("c9").Value = "ja" Then Sheets("mai").Visible = True Else Sheets("mai").Visible = False End If Sheets("Muster").Visible = True If Range("c10").Value = "ja" Then Sheets("juni").Visible = True Else Sheets("juni").Visible = False End If Sheets("Muster").Visible = True If Range("c11").Value = "ja" Then Sheets("juli").Visible = True Else Sheets("juli").Visible = False End If Sheets("Muster").Visible = True If Range("c12").Value = "ja" Then Sheets("august").Visible = True Else Sheets("august").Visible = False End If Sheets("Muster").Visible = True If Range("c13").Value = "ja" Then Sheets("september").Visible = True Else Sheets("september").Visible = False End If Sheets("Muster").Visible = True If Range("c14").Value = "ja" Then Sheets("Oktober").Visible = True Else Sheets("oktober").Visible = False End If Sheets("Muster").Visible = True If Range("c15").Value = "ja" Then Sheets("november").Visible = True Else Sheets("november").Visible = False End If Sheets("Muster").Visible = True If Range("c16").Value = "ja" Then Sheets("dezember").Visible = True Else Sheets("dezember").Visible = False End If Sheets("Muster").Visible = False End Sub
Code:[Cc]Private Sub Worksheet_Calculate() Dim sMon() As String, iMon As Integer 'Monatsnamen in ein Array schaffen sMon = Split(" januar februar märz april mai juni juli august september oktober november dezember") With Sheets("Makro") .Visible = True 'Blatt Makro einbenden For iMon = 1 To 12 'Alle Monate durchgehen und ein/ausblenden Sheets(sMon(iMon)).Visible = IIf(.Cells(iMon + 4, "C").Value = "ja", True, False) Next iMon On Error Resume Next 'Fehlerabfang: Falls alles ausgeblendet sein sollte .Visible = False 'Blatt Makro einbenden End With End Sub
Private Sub Worksheet_Calculate() If Range("c5").Value = "ja" Then Sheets("januar").Visible = True Else Sheets("januar").Visible = False End If Sheets("Muster").Visible = True If Range("c6").Value = "ja" Then Sheets("februar").Visible = True Else Sheets("februar").Visible = False End If Sheets("Muster").Visible = True If Range("c7").Value = "ja" Then Sheets("märz").Visible = True Else Sheets("märz").Visible = False End If Sheets("Muster").Visible = True If Range("c8").Value = "ja" Then Sheets("april").Visible = True Else Sheets("april").Visible = False End If Sheets("Muster").Visible = True If Range("c9").Value = "ja" Then Sheets("mai").Visible = True Else Sheets("mai").Visible = False End If Sheets("Muster").Visible = True If Range("c10").Value = "ja" Then Sheets("juni").Visible = True Else Sheets("juni").Visible = False End If Sheets("Muster").Visible = True If Range("c11").Value = "ja" Then Sheets("juli").Visible = True Else Sheets("juli").Visible = False End If Sheets("Muster").Visible = True If Range("c12").Value = "ja" Then Sheets("august").Visible = True Else Sheets("august").Visible = False End If Sheets("Muster").Visible = True If Range("c13").Value = "ja" Then Sheets("september").Visible = True Else Sheets("september").Visible = False End If Sheets("Muster").Visible = True If Range("c14").Value = "ja" Then Sheets("Oktober").Visible = True Else Sheets("oktober").Visible = False End If Sheets("Muster").Visible = True If Range("c15").Value = "ja" Then Sheets("november").Visible = True Else Sheets("november").Visible = False End If Sheets("Muster").Visible = True If Range("c16").Value = "ja" Then Sheets("dezember").Visible = True Else Sheets("dezember").Visible = False End If Sheets("Muster").Visible = False End Sub