Clever-Excel-Forum

Normale Version: Zeile auf anderer Tabelle ausblenden, wenn Zelle leer ist
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo.

Ich stehe vor dem Problem, dass ich auf Tabelle 2 eine Zeile ausblenden muss, wenn eine Zelle auf Tabelle 1 leer ist.
Dabei sind die Zeilennummern auf Tabelle 1 und 2 um 2 verschoben.

Beispiel:

Wenn Zelle A5 auf Tabelle 1 leer ist, dann soll Zeile 7 auf Tabelle 2 ausgeblendet werden. 
Wenn Zelle A6 auf Tabelle 1 leer ist, dann soll Zeile 8 auf Tabelle 2 ausgeblendet werden.
Wenn Zelle A127 auf Tabelle 1 leer ist, dann soll Zeile 129 auf Tabelle 2 ausgeblendet werden.
usw.

Ich habe folgendes im Netz gefunden:
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Cells(1, 1)) Is Nothing Then _
        Tabelle2.Rows("50:100").Hidden = IsEmpty(Cells(1, 1).Value)
End Sub

Ich bin aber zu dusselig, das auf meine Situation umzumodeln.
Vielleicht kann mir dabei jemand helfen?

Vielen Dank!

Björn
Hallo,

ich würde das bei Aktivierung der Tabelle2 erledigen, vorher siehst Du ja nicht, ob ausgeblendet oder nicht.

Dazu folgenden Code in das Code Modul der Tabelel2:

Code:
Private Sub Worksheet_Activate()
   With Sheets("Tabelle1")
      Rows(7).Hidden = .Range("A5") = ""
      Rows(8).Hidden = .Range("A6") = ""
      Rows(129).Hidden = .Range("A127") = ""
   End With
End Sub


Wenn Du aber unbedingt Deine Variante nutzen möchtest, das ginge so:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A5:A6,A127")) Is Nothing Then
      Select Case Target.Address(0, 0)
         Case "A5"
            Sheets("Tabelle2").Rows(7).Hidden = Target.Value = ""
         Case "A6"
           Sheets("Tabelle2").Rows(8).Hidden = Target.Value = ""
         Case "A127"
            Sheets("Tabelle2").Rows(8).Hidden = Target.Value = ""
      End Select
   End If
End Sub

Dieser Code kommt dann in das Code Modul der Tabelle1.
Hier noch eine Variante, bei du festlegen mußt, wieviele Einträge es in der Spalte A gibt (und wie groß der Versatz sein soll - in Deiner Anfrage = 2). Hier geht das Programm jede Zelle durch und prüft ob was enthalten ist.

Sub Ausblenden()
    Anzahl = 127
    Versatz = 2
    For i = 1 To Anzahl + Versatz
       If IsEmpty(Tabelle1.Range("A" & i).Value) = True Then
            Worksheets("Tabelle2").Rows(i + Versatz).Hidden = True
       Else:
            Worksheets("Tabelle2").Rows(i + Versatz).Hidden = False
    End If
  Next i
End Sub


Gruß
Statler