Excel VBA: WorbookOpen nach Zellinhalt

Hallo

Ich habe eine Datei die Automatisch das Tabellenblatt öffent, das ich in einem Makro hinterlegt habe:
Der Code sieht so aus:

Private Sub Workbook_Open()
ThisWorkbook.Worksheets(„November“).Activate
End Sub

Die Tabelle besteht aus 13 Blättern. Erstes Blatt heißt Feiertage.
Die anderen haben die Monatsnamen (Januar usw.).

Nun möchte ich, dass immer das Tabellenblatt geöffent wird dessen Namen in dem Blatt „Feiertage“ in Zelle I6 steht.
Keine Ahnung ob dies mit Range geht und wenn, wie.
Kann mit jemand helfen?
Bin totaler VBA Neuling

Hallo,

das geht mit folgenden Zeilen:

Tabellenname = Range(„I6“).Value
Sheets(Tabellenname).Select

Gruß
Natator

Super
Vielen Dank.
Funktioniert klasse, genau was ich wollte!

Nur fürs Forum (sollte jemand das gleiche Problem haben)
hier der gesamte Code:
Private Sub Workbook_Open()

ThisWorkbook.Worksheets(„Feiertage“).Activate
Tabellenname = Range(„I6“).Value
Sheets(Tabellenname).Select

End Sub

Hallo,
bei Worksheets(…) steht ein Tabellennamen oder auch Index, VBA erkennt, was gemeint ist. Diesen String kann man auch über eine Variable vorgeben, z.B.
Tabelle = „Dezember“
Worksheets(Tabelle).Activate
Die Stringvariable kann man aus einer Zelle laden, z.B.
Tabelle = Sheets(xxx).Cells(Zeile, Spalte) oder auch ganz einfach
Worksheets(Sheets(„Feiertage“).Cells(6, 9)).Activate
Hinweis: Cells(6, 9) = Cells(„I9“)
Okay?
Rainer

Vielen Dank

Habe untenstehenden Code über dieses Forum bekommen und funktioniert.
Deine Variante ist allerdings einfacher zu verstehen.
Werde also deine einbauen, dann versteht auch jemand anderes den Code.
Ausserdem vielen dank für die Erklärung des String.
Solche Hinweise sind Gold Wert, weil man auch gleich noch mehr lernt!!!
Danke

Private Sub Workbook_Open()
ThisWorkbook.Worksheets(„Feiertage“).Activate
Tabellenname = Range(„I6“).Value
Sheets(Tabellenname).Select

End Sub

Hallo Monschar,

als Neuling halte erst mal den Ball flach…

Versuchs doch mal mit was einfachem, mit „Hyperlinks“.

In deinem Blatt „Feiertage“ gehe auf eine beliebige Zelle z.B. „B2“, betätige die rechte Maustaste und wähle „Hyperlink“ aus.
Danach auf der linken Seite den Button „aktuelles Dokument“.
Jetzt kannst du dein Blatt mit z.B.„Januar“ auswählen und mit „OK“ bestätigen.

Voila, soeben hast du den 1.Hyperlink gesetzt.
Klickst du diesen an, bist du direkt auf der Tabelle „Januar“.

Geholfen wird nur bei Problemen.

Ich habe dies schön öfters veröffentlicht, dass ich Anfängern keine Schulung gebe.

Besorge dir Fachliteratur z.B.von Bernd Held etc.
Das Internet ist voll davon, auch mit kostenlosen PDFs, welche dir weiter helfen können!

Hey,
ich kann es gerade nicht ausprobieren, aber versuche mal:

Private Sub Workbook_Open()
ThisWorkbook.Worksheets(„November“).select
ThisWorkbook.Worksheets(„November“).Activate
End Sub

'Das activate kannst du optional benutzen.

Gruß
Ramaka

Hallo

Private Sub Workbook_Open()
ThisWorkbook.Worksheets(„November“).Activate
End Sub

ThisWorkbook.Worksheets(ThisWorkbook.Worksheets(„Feiertage“).range(„I6“).value).Activate

Hallo Monschar,

dazu musst Du einfach nur den Zellinhalt auslesen. Es sollte allerdings der Text in der Zelle exakt mit dem Blattnamen übereinstimmen. So geht’s:

Private Sub Workbook_Open()
Worksheets(„Feiertage“).select
Auswahl = Range(„I6“).value
ThisWorkbook.Worksheets(Auswahl).Activate
End Sub

Gruß,
Jochen

Danke für den Hinweis.

Habe mir sogar ein Buch von Bernd Held gekauft, bzw. mich im Internet mit der Materie beschäftigt.
Problem dabei ist nur, dass man sich oft auskennen muss um zu verstehen, was beschrieben wird.

Nach einiger Zeit hatte ich mich dann entschlossen, doch im Forum zu fragen.
Die Antworten die kamen, konnte ich einigermassen verstehen (sogar für andere Aufgaben).
Deine beschreibung für Hyperlinks zum Beispiel.
Hoffe, Du kannst damit uns Anfänger etwas besser verstehen.
Danke nochmal für die schnelle Antwort.

Grüezi Monschar

Nun möchte ich, dass immer das Tabellenblatt geöffent wird
dessen Namen in dem Blatt „Feiertage“ in Zelle I6 steht.
Keine Ahnung ob dies mit Range geht und wenn, wie.
Kann mit jemand helfen?

Das kannst Du z.B. wie folgt lösen:

Private Sub Workbook\_Open()
Dim strMonat As String
 strMonat = ThisWorkbook.Worksheets("Feiertage").Range("I6").Value
 ThisWorkbook.Worksheets(strMonat).Activate
End Sub

Wenn Du immer den Monat des aktuellen Tagesdatums anspringen willst, dann auch so:

Private Sub Workbook\_Open()
Dim strMonat As String
 strMonat = Format(Date, "mmmm")
 ThisWorkbook.Worksheets(strMonat).Activate
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hi

habe eine kombi mit deiner Hilfe gemacht.
Vielen dank

Fürs Forum:

Private Sub Workbook_Open()
ThisWorkbook.Worksheets(„Feiertage“).Activate
If IsEmpty(Cells(6, 9)) Then
Dim strMonat As String
strMonat = Format(Date, „mmmm“)
ThisWorkbook.Worksheets(strMonat).Activate
Else

Tabellenname = Range(„I6“).Value
Sheets(Tabellenname).Select

End If

End Sub

W

moin,

von rainer hast du ja schon alle wichtigen infos bekommen.

viel erfolg mit vba!

Das Forum ist echt der Hammer!!!
Vielen dank für Eure Antworten!

zur zeit kann ich leider nicht behilflich sein

Danke für die Meldung!
Habe schon geholfen bekommen.
Viel Kraft für deine Arbeit!

zur zeit kann ich leider nicht behilflich sein