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
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