Hallo Janina,
hier mal 3 Makros, die in das Modul Tabelle1 gehören.
Private Sub Worksheet_Calculate()
For i = 1 To 4
With Sheets("Tabelle" & i)
.Rows("1:1").Hidden = Sheets("Tabelle1").Range("B1") = ""
.Rows("2:2").Hidden = Sheets("Tabelle1").Range("B2") = ""
.Rows("3:3").Hidden = Sheets("Tabelle1").Range("B3") = ""
End With
Next i
If ActiveWindow.ScrollRow <= 4 Then ActiveWindow.ScrollRow = 1
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B3")) Is Nothing Then
For Each c In Target.Cells
For i = 1 To 4
With Sheets("Tabelle" & i)
If c.Row <= 3 Then .Rows(c.Row).Hidden = c.Value = ""
End With
Next i
Next c
End If
End Sub
Sub Einblenden()
For i = 1 To 4
With Sheets("Tabelle" & i)
.Rows("1:1").Hidden = False
.Rows("2:2").Hidden = False
.Rows("3:3").Hidden = False
End With
Next i
If ActiveWindow.ScrollRow <= 4 Then ActiveWindow.ScrollRow = 1
End Sub
Das erste Marko "Application Calculate" wird ausgeführt wenn du die Leerzelle per Formel berechnest. z.B. über =WENN(C9=1;1;"") Wenn du in C9 eine 1 einträgst wird die Zeile1 eingeblendet. Ist C9 jedoch <>1 wird sie ausgeblendet.
Das zweite Makro "Worksheet Change" wird ausgeführt wenn du per Direkteingabe, z.B. über die Taste ENTF, die Zellen löschst bzw. neu beschreibst. Ist B1="" dann wird zeile1 ausgeblendet, steht was drin wird sie eingeblendet.
Das dritte Makro "Einblenden" fügst du deinem Button hinzu. Hier werden alle 3 Zeilen eingeblendet.
Sollten deine Tabellen anders heißen, dann ersetzen Sheets("Tabelle" & i) durch Sheets(i) sowie Sheets("Tabelle1") durch Sheets(1)
Gruß Mr. K.