Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Tabelle abhängig vom Zellwert öffnen





Frage

Hallo @ alle EXCEListen, ich suche nach einer Möglichkeit ein x-beliebiges Tabellenblatt durch die Eingabe des Tabellenblattnamens in eine Zelle zu öffnen. Zum besseren Verständnis: In A1/Tabelle 1 gebe ich "Tabell12" ein. Nach bestädigen mit Enter (oder alternativ Click auf CommandButton) wird Tabelle12 geöffnet. Kann mir da jemand weiter helfen. Viele Dank schon mal im voraus. JöKe

Antwort 1 von Annan

Hallo,

mit CommandButton:

Sub Zeigen()
If Sheets("Tabelle1").Range("A1").Value = "Tabelle12" Then
Sheets("Tabelle12").Activate
End If
End Sub

Dieses Makro in ein Standardmodul u. einem Button zuweisen !
ODER direkt durch bestätigen nach Eintrag in Zelle A1, des Blattes "Tabelle1":

Private Sub Worksheet_Change(ByVal Target As Range)
If Sheets("Tabelle1").Range("A1").Value = "Tabelle12" Then
Sheets("Tabelle12").Activate
End If
End Sub

Dies direkt in das Tabellenblatt von Tabelle1 eintragen !

MfG

Antwort 2 von JöKe

Hallo Annan,
vielen Dank für deine schnelle Antwort. Leider ist es nicht das was ich gesucht habe. Ich möchte von Tabelle1 nicht nur zu Tabelle12 wechseln, sondern abhängig von dem Wert in Zelle A1/Tabelle1 in eine dem Wert zugeortnete Tabelle. Also bei 2 in Tabelle2, bei 3 in Tabelle3 usw. Ist das möglich?

Antwort 3 von Annan

Hallo,

eine bessere Möglichkeit fällt mir spontan nicht ein:

Mit Return:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Sheets("Tabelle1").Range("A1").Value
Case 2: Sheets("Tabelle2").Activate
Case 3: Sheets("Tabelle3").Activate
Case 4: Sheets("Tabelle4").Activate
Case 5: Sheets("Tabelle5").Activate
Case 6: Sheets("Tabelle6").Activate
Case 7: Sheets("Tabelle7").Activate
Case 8: Sheets("Tabelle8").Activate
Case 9: Sheets("Tabelle9").Activate
Case 10: Sheets("Tabelle10").Activate
Case 11: Sheets("Tabelle11").Activate
Case 12: Sheets("Tabelle12").Activate
End Select
End Sub

Direkt in das Codefenster der Tabelle1.

Mit Button:

Option Explicit

Sub Zeigen()
Select Case Sheets("Tabelle1").Range("A1").Value
Case 2: Sheets("Tabelle2").Activate
Case 3: Sheets("Tabelle3").Activate
Case 4: Sheets("Tabelle4").Activate
Case 5: Sheets("Tabelle5").Activate
Case 6: Sheets("Tabelle6").Activate
Case 7: Sheets("Tabelle7").Activate
Case 8: Sheets("Tabelle8").Activate
Case 9: Sheets("Tabelle9").Activate
Case 10: Sheets("Tabelle10").Activate
Case 11: Sheets("Tabelle11").Activate
Case 12: Sheets("Tabelle12").Activate
End Select
End Sub

Das Makro in ein Standardmodul u. einem Button zuweisen.
Wie gesagt, vielleicht findet ja noch jemand eine elegantere Lösung, insbesondere wenn z.B. 50 Tabellen oder mehr sind.

MfG

Antwort 4 von JöKe

Vielen dank Annan für deine Bemühungen!
Leider sind es mehr als 50 Tabellen.
Hast mich mit deiner Lösung auf eine Idee gebracht werde sie gleich mal austesten.

Mfg JöKe hören uns wieder.

Antwort 5 von Primut

Hi JöKe,

proboers einfach mal hiermit, einzufügen in Tabelle1:

Private Sub Worksheet_Change(ByVal Target As Range)
 
 Dim Zellbereich As Range
 Set Zellbereich = Range("A1")
 On Error Resume Next
 If Target.Address = Zellbereich.Address Then
 Blatt = Target
  Sheets(Blatt).Activate
  Else
  End If
  End Sub


Damit mußt du in Tabelle1 in der Zelle A1 den Namen des Blattes eingeben, den du aktivieren möchtest, gibt es das Blatt nicht, wird es ignoriert.

Gruß Primut

Antwort 6 von JoeKe

Danke Primut! So funzt es!
MfG JöKe