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,
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
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
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!
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.
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
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