Automatisches Zellen ein/ausblenden, wenn - einbinden in ein bereits vorhandenen Code VBA Excel

  • Excel

    Automatisches Zellen ein/ausblenden, wenn - einbinden in ein bereits vorhandenen Code VBA Excel

    Hallo zusammen,

    ich habe mich auf ein für mich schwieriges Terrain eingelassen und stehe nun da mit meinem Fragezeichen im Kopf, welches vor dem Bildschirm sitzt und
    sich bereits durch ein paar Foren geklickt hat - ohne Erfolg.

    Ich habe folgendes Programm geschrieben - vorab gesagt, einfach umgewandelt ohne große Ahnung zu haben, wie es im Detail funkt und wie ich nun mein
    noch offenes Thema (weiter unten, nach dem Programmcode geschrieben) einbauen kann.

    Bitte helft mir...und tausend Dank im Voraus. Ich bin hier echt am verzweifeln...

    Folgendes Programm dient dazu, bei bestimmten Fällen Tabellenblätter ein/auszublenden.
    Das funktioniert:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Me.Range("F78:F86")) Is Nothing And Target.Cells.Count = 1 Then
    Select Case Target.Address
    Case "$F$78"
    Call umschaltenBlatt(Target.Value, "1.A")
    Call umschaltenBlatt(Target.Value, "1.A.1")
    Call umschaltenBlatt(Target.Value, "1.A.2")
    Call umschaltenBlatt(Target.Value, "1.A.3")
    Call umschaltenBlatt(Target.Value, "1.A.4")
    Call umschaltenBlatt(Target.Value, "Rate D1")
    Call umschaltenBlatt(Target.Value, "Prognose Gesamt")
    Case "$F$80"
    Call umschaltenBlatt(Target.Value, "1.B")
    Call umschaltenBlatt(Target.Value, "1.B.1")
    Call umschaltenBlatt(Target.Value, "1.B.2")
    Call umschaltenBlatt(Target.Value, "1.B.3")
    Call umschaltenBlatt(Target.Value, "1.B.4")
    Call umschaltenBlatt(Target.Value, "Rate D2")
    Case "$F$82"
    Call umschaltenBlatt(Target.Value, "1.C")
    Call umschaltenBlatt(Target.Value, "1.C.1")
    Call umschaltenBlatt(Target.Value, "1.C.2")
    Call umschaltenBlatt(Target.Value, "1.C.3")
    Call umschaltenBlatt(Target.Value, "1.C.4")
    Call umschaltenBlatt(Target.Value, "Raten D3")
    Case "$F$84"
    Call umschaltenBlatt(Target.Value, "1.D")
    Call umschaltenBlatt(Target.Value, "1.D.1")
    Call umschaltenBlatt(Target.Value, "1.D.2")
    Call umschaltenBlatt(Target.Value, "1.D.3")
    Call umschaltenBlatt(Target.Value, "1.D.4")
    Call umschaltenBlatt(Target.Value, "Rate D4")
    Case "$F$86"
    Call umschaltenBlatt(Target.Value, "1.E")
    Call umschaltenBlatt(Target.Value, "1.E.1")
    Call umschaltenBlatt(Target.Value, "1.E.2")
    Call umschaltenBlatt(Target.Value, "1.E.3")
    Call umschaltenBlatt(Target.Value, "1.E.4")
    Call umschaltenBlatt(Target.Value, "Rate D5")
    'für jede Zelle eine weitere Case-Anweisung einfügen
    Case Else
    'do nothing
    End Select
    End If

    Private Sub umschaltenBlatt(Zellwert, Blatt As String)
    If Zellwert = "" Then
    Sheets(Blatt).Visible = False
    Else
    Sheets(Blatt).Visible = True
    End If
    End Sub

    Jetzt die für mich supergroße Hürde:
    Ich benötige eine Erweiterung des obigen Programms für Zellenbereiche.

    Betrachtet wird der Bereich F78:F86 (wie oben), ob befüllt oder nicht und das

    ganze soll automatisch passieren, wenn die Zellen befüllt oder geleert werden.

    (zur Info: jede zweite Zeile im Betrachtungsbereich F78:F86 wird nicht benutzt

    und dient nur der Übersichtlichkeit, heißt F79, F81,F83, usw, hat keine Funktion),

    wenn nur F78 befüllt, dann

    bleibe bei diesem Arbeitsblatt und blende mir die Zellen-Bereiche

    B97:K103 und B116:Q122 und B136:Q142 und B154:Q160 und B173:Q179 und B189:195 und

    B208:Q214 und B228:Q234 aus,

    gehe zu Arbeitsblatt "Prognose Gesamt" und blende mir den Zellen-Bereich

    C9:Q18 aus,

    und

    gehe zu Arbeitsblatt "Navi" und blende mir den Zellen-Bereich

    25-28 und 46-68 aus.

    wenn F78 und F80 befüllt

    dann bleibe bei diesem Arbeitsblatt und blende mir die Zellen-Bereiche

    B99:K103 und B118:Q122 und B136:Q142 und B156:Q160 und B175:Q179 und B191:195 und

    B210:Q214 und B230:Q234 aus,

    und

    gehe zu Arbeitsblatt "Prognose Gesamt" und blende mir den Bereich

    C11:Q18 aus

    und

    gehe zu Arbeitsblatt "Navi" und blende mir den Zellen-Bereich

    26-28 und 52-68 aus.

    Wenn F78, F80 und F82 befüllt, dann

    bleibe bei diesem Arbeitsblatt und blende mir die Zellen-Bereiche

    B101:K103 und B120:Q122 und B138:Q142 und B158:Q160 und B177:Q179 und B193:195 und

    B212:Q214 und B232:Q234 aus,

    gehe zu Arbeitsblatt "Prognose Gesamt" und blende mir den Bereich

    C13:Q19 aus

    und

    gehe zu Arbeitsblatt "Navi" und blende mir den Zellen-Bereich

    27-28 und 58-68 aus.

    Wenn F78, F80, F82 und F84 befüllt, dann

    bleibe bei diesem Arbeitsblatt und blende mir die Zellen-Bereiche

    B103:K103 und B123:Q122 und B140:Q142 und B160:Q160 und B179:Q179 und B195:195 und

    B214:Q214 und B234:Q234 aus,

    gehe zu Arbeitsblatt "Prognose Gesamt" und blende mir den Bereich

    C15:Q19 aus

    und

    gehe zu Arbeitsblatt "Navi" und blende mir den Zellen-Bereich

    28 und 64-68 aus.

    Wenn F78, F80, F82,F84 und F86 befüllt, dann tue gar nichts.

    Bitte helft mir!
    Wie krieg ich das eingebastelt, so dass es funktioniert.

    Herzlichen Dank im Voraus für eure Antworten!

    Viele Grüße Joe