Tabellenblatt einblenden, wenn mehrere Bedingungen erfüllt sind

Moin zusammen,

ich benötige mal wieder eure Hilfe:

Folfgende Tabelle:

. . . . . . . . A . . . . . . B . . . . . . C

5. . . . . . . . . . . . . . . a
6
7. . . . . . . . . . . . . . . b
8
9. . . . . . . . . . . . . . . c
10
11. . . . . . . . . . . . . . d
12
13. . . . . . . . . . . . . . Apfel
14

Der nachfolgende Code blendet mir die Tabellenblätter 2 + 3 aus, wenn B5 keinen Eintrag enthält:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = „$B$5“ Then
If Target = „“ Then
Sheets(„Tabelle2“).Visible = xlHidden
Sheets(„Tabelle3“).Visible = xlHidden
Else
Sheets(„Tabelle2“).Visible = True
Sheets(„Tabelle3“).Visible = True
End If
End If

End Sub

Ich möchte das etwas erweitern:
Die Tabellenblätter sollen, abhängig von B13, erst eingeblendet werden, wenn in B5, B7, B9 und B11 Einträge gemacht wurden. Wenn weiter in B13 Apfel steht, soll TB 2 eingeblendet werden, wenn in B13 Birne steht, soll TB 3 eingeblendet werden.

Es wäre schön, wenn mir jemand helfen könnte.

Gruß und danke schonmal.
Rolf

Hallo Rolf,

Versuche es mit einer Select Case-Anweisung. Z. B.:

/target= b13
Select Case target
case „Apfel“
         TB2.visible = true
case „Birne“
         TB3.visible = true
case else
        TB1.visible = false
        TB… visible = false

Entweder dann die Einträge B5 etc. mit einbauen
case „Apfel“ AND ActiveWorksheets.Cells(B5) = „,“

Oder
eigene If / Select für B5 ff

Gruß
Harry

Hallo Harry,

Versuche es mit einer Select Case-Anweisung. Z. B.:

/target= b13
Select Case target
case „Apfel“
         TB2.visible = true
case „Birne“
         TB3.visible = true
case else
        TB1.visible = false
        TB… visible = false

Entweder dann die Einträge B5 etc. mit einbauen
case „Apfel“ AND ActiveWorksheets.Cells(B5) = „,“

Oder
eigene If / Select für B5 ff

Das kriege ich nicht hin :frowning:

Mein Code sieht jetzt so aus:

Private Sub Worksheet\_Change(ByVal Target As Range)

If Target.Address = b13 Then
Select Case Target

Case "Apfel"
Sheets("Tabelle2").Visible = True

Case "Birne"
Sheets("Tabelle3").Visible = True

Case Else
Sheets("Tabelle2").Visible = False
Sheets("Tabelle3").Visible = False

'#############

Case "Apfel" And activeWorksheets.Cells(b5) \> 0
Sheets("Tabelle2").Visible = True

Case "Apfel" And activeWorksheets.Cells(b7) \> 0
Sheets("Tabelle2").Visible = True

Case "Apfel" And activeWorksheets.Cells(b9) \> 0
Sheets("Tabelle2").Visible = True

Case "Apfel" And activeWorksheets.Cells(b11) \> 0
Sheets("Tabelle2").Visible = True

Case Else
Sheets("Tabelle2").Visible = False
Sheets("Tabelle3").Visible = False

End If

End Select

End Sub

Selbst, wenn ich es auf den 1. Teil beschränke, klappt es nicht.
Kannst Du nochmal helfen?

Gruß
Rolf

Ich möchte das etwas erweitern:
Die Tabellenblätter sollen, abhängig von B13, erst
eingeblendet werden, wenn in B5, B7, B9 und B11 Einträge
gemacht wurden. Wenn weiter in B13 Apfel steht, soll TB 2
eingeblendet werden, wenn in B13 Birne steht, soll TB 3
eingeblendet werden.

Hallo Rolf,

Option Explicit

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim JaNein As Boolean
If Intersect(Target, Range("B5,B7,B9,B11,B13")) Is Nothing Then Exit Sub
JaNein = Application.CountA(Range("B5,B7,B9,B11,B13")) = 5
Sheets("Tabelle2").Visible = Range("B13").Value = "Apfel" And JaNein
Sheets("Tabelle3").Visible = Range("B13").Value = "Birne" And JaNein
End Sub

Gruß
Reinhard

Danke :smile:
Hallo Reinhard,

vielen Dank, so dachte ich mir das *freu*

Gruß
Rolf

schau mal hier, vielleoicht ist da etwas für Dein Problem dabei.

Ich selbst bin mit Excel-Kopfnüssen weniger vertraut :wink:

www.herber.de

Moin,

yep, die Seite ist bekannt.

Trotzdem Danke für den Hinweis.

Gruß
Rolf