Wie kann ich Tabellenblätter einer vorherigen Auswahl zuordnen?

Liebe/-r Experte/-in,
ich habe ein großes Problem. Ich habe mit Excel ca. 20 Tabellenblätter mit Fragen und Formeln gefüllt. Jetzt möchte ich am Anfang, also auf dem ersten Tabellenblatt eine Abfrage machen. Dort soll gewählt werden, ob man A oder B möchte. Entweder mit einer Drop-Down-Liste oder mittels Schaltflächen. Je nach Wahl sollen z.B. bei der Wahl von A die Tabellenblätter 1,2,5,7,8,9,11,12,13,15,17 und bei der Wahl von B die Tabellenblätter 1,3,4,6,10,14,16,18,19 und 20 zur Bearbeitung (Beantwortung der Fragen usw.) angezeigt werden. Die jeweils anderen Tabellenblätter sollen nach der Auswahl nicht mehr erscheinen. Wie kann ich dieses Problem angehen. Ist das überhaupt mit Excel machbar. Bitte um Eure Hilfe!!! Ich weiß nicht mehr weiter.

Vielen Dank!

Carsten

Hallo!

Hier schon mal ein Makro zum ein-bzw. ausblenden der entsprechenden Seiten (basiert auf dem Befehl „Format“ --> „Blatt“ --> „Ausblenden“ bzw. „Einblenden…“).
Das Makro liest die Auswahl („A“ oder „B“) aus der Zelle A1 des ersten Blattes aus.

–schnipp–

'Auslesen der Auswahl
auswahl = Sheets(1).Cells(1, 1).Value

'Alle Sheets ausser Sheet 1 ausblenden
For x = ThisWorkbook.Sheets.Count To 2 Step -1
Sheets(x).Visible = False
Next x

'Array der auszublendenden Sheets je nach Auswahl festlegen
Dim A As Variant
If auswahl = „A“ Then
einblenden = Array(2, 5, 7, 8, 9, 11, 12, 13, 15, 17)
Else:
einblenden = Array(3, 4, 6, 10, 14, 16, 18, 19, 20)
End If

'Elemente im Array zählen
AnzahlSeiten = UBound(einblenden) - LBound(einblenden)

'Sheets einblenden
For x = 0 To AnzahlSeiten
Sheets(einblenden(x)).Visible = True
Next x

–schnapp–

Falls Du noch weitere Hilfe benötigst (oder Dir das alles garnix sagt), bitte noch mal melden. Ich habe es gerade ein bisschen eilig…

Viel Erfolg!

flocko

Grüezi Carsten

Mit welcher Excel-Version arbeitest Du denn?

ich habe ein großes Problem. Ich habe mit Excel ca. 20
Tabellenblätter mit Fragen und Formeln gefüllt. Jetzt möchte
ich am Anfang, also auf dem ersten Tabellenblatt eine Abfrage
machen. Dort soll gewählt werden, ob man A oder B möchte.
Entweder mit einer Drop-Down-Liste oder mittels Schaltflächen.
Je nach Wahl sollen z.B. bei der Wahl von A die
Tabellenblätter 1,2,5,7,8,9,11,12,13,15,17 und bei der Wahl
von B die Tabellenblätter 1,3,4,6,10,14,16,18,19 und 20 zur
Bearbeitung (Beantwortung der Fragen usw.) angezeigt werden.
Die jeweils anderen Tabellenblätter sollen nach der Auswahl
nicht mehr erscheinen. Wie kann ich dieses Problem angehen.

Du könntest für jeden Zustand eine benutzerdefinierte Ansicht erstellen. Beginne mit der Standard-Ansicht für alle Blätter. Dann blendest Du die einen Tabellenblätter aus und erstellst eine Ansicht ‚A‘. Alle Blätter wieder einblenden und dasselbe dann mit Ansich ‚B‘.

Nun kannst Du über diese Ansichten die Blätter gezielt ein- und ausblenden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Carsten,

nimm ein Tabellenblatt, das Du meinetwegen „Auswahl“ nennst. Hier deponierst Du aus der Symbolleiste „Formular“ ein Kombinationsfeld „Dropdown“.
Hier formatiertst Du den Eingabebereich wie folgt:
Eingabebereich H1:H2 (in H1 steht „A“ in H2 „B“), Zellverknüpfung H3, DropdownZeilen 3
Dann weist Du diesem Dropdown folgendes Makro zu:

Sub Dropdown1_BeiÄnderung()
Auswahl = Range(„H3“).Value
Select Case Auswahl
Case Is = 1 '= A
For i = 1 To 4
'alle einblenden
Sheets(„Tabelle“ & i).Visible = True
Next i
'ausblenden
For i = 1 To 4 Step 2
Sheets(„Tabelle“ & i).Visible = False
Next i

Case Is = 2 '= B
For i = 1 To 4
'alle einblenden
Sheets(„Tabelle“ & i).Visible = True
Next i
'ausblenden
For i = 1 To 4 Step 2
Sheets(„Tabelle“ & i + 1).Visible = False
Next i

End Select
Sheets(„Auswahl“).Select
End Sub

Ich habe hier ein Beispiel aus meinem Fundus angegeben, dass nur die geraden bzw. die ungeraden Tabellenblätter öffnet. Aber vielleicht kannst Du dieses Makro ja auf Deine Wünsche entsprechend umstricken.
Falls Du Probleme damit hast, melde Dich noch mal - ich helfe Dir dann weiter.

Gruß,
Ptonka

Hallo Carsten,
ich verstehe nicht ganz, was Du mit „Tabelle anzeigen“ meinst. Meines Wissens kann man Blätter (im Gegensatz zu Zeilen und Spalten) nicht ausblenden, aber ihre Reihenfolge ändern, z.B.:
[Sheets(nr/name).Select]
Sheets(nr/name).Move Before:=Sheets(nr/name)
Man kann also die wichtigen an den Anfang stellen.
Oder: Du blendest die Blattregisterkarten komplett aus und bietest über eine Drop-Down-Liste die relevanten zum Aktivieren an.
Dazu braucht man VBA, am besten einmal Makromitschnitt einschalten und die Operation händisch durchführen.
Viel Erfolg
Rainer

ActiveWorkbook.Sheets(_nr).Visible = False ’ _nr - Nummer des Tabellenblates zum Ausblenden.

Hallo Carsten,

dies könnte man z.B. mit einem Kombinationsfeld (Ansicht - Symbolleisten - Steuerelement-Toolbox) machen. Definiere bei diesem Steuerelement eine ListFillRange(z.B. A1:A2) um in Deinem Fall den Text „A“ und „B“ von Tabellenzellen zu übernehmen. Bei einem Doppelklick auf das Steuerelement (Hierfür sollte der Entwurfsmodus aktiv sein) gelangst Du in den VBA-Editor. Dort kopierst Du folgendens Skript rein, passt Deine Tabellennamen an und verlässt diesen Editor wieder. Nach dem Beenden des Entwurfsmodus, sollten nun abbhängig Deiner Eingabe, die entsprechenden Tabellenblätter ausgeblendet sein.

Aber Achtung! Wenn jemand anderes Deine Excel-Mappe bearbeiten möchte und die Marko-Sicherheit auf hoch steht, funktioniert kein VBA-Code.

LG Gerd

Option Explicit

Private Sub ComboBox1_Change()
Dim WB As Workbook
Dim TabNamen As Variant, i As Long

Set WB = ThisWorkbook

On Error GoTo Fehler

Application.ScreenUpdating = False

'Welche Tabellen sollen ausgeblendet werden?
Select Case ComboBox1.Value
Case Is = „A“
TabNamen = Array(„Tabelle4“, „Tabelle6“, „Tabelle10“, „Tabelle14“)
Case Is = „B“
TabNamen = Array(„Tabelle5“, „Tabelle7“, „Tabelle8“, „Tabelle9“)
Case Else
GoTo Ende
End Select

Call TabellenAnzeigen

For i = LBound(TabNamen) To UBound(TabNamen)
WB.Worksheets(TabNamen(i)).Visible = False
Next i

Ende:
Application.ScreenUpdating = True
Set WB = Nothing
Exit Sub

Fehler:
MsgBox Err.Number & vbCr & Err.Description, , „Fehlermeldung“
GoTo Ende
End Sub

Private Sub TabellenAnzeigen()
Dim WB As Workbook, Sh As Worksheet

Set WB = ThisWorkbook
For Each Sh In WB.Worksheets
Sh.Visible = xlSheetVisible
Next Sh

Set WB = Nothing: Set Sh = Nothing
End Sub

SM,

Blatt 1 bekommt unten 2 Buttons: „weiter mit A“ (geht nach 2) bzw. „weiter mit B“ (geht nach 3).

Die weiteren Blaetter brauchen alle ein Button „weiter“ (von 2 nach 5 fuer Blatt 2 bzw. von 3 nach 4 fuer Blatt 3).

Blatt 17 (bzw. Blatt 20) bekommt ein Button „Ende“.

Schoenen Tag noch
Pete