1.6k Aufrufe
Gefragt in Tabellenkalkulation von
Ich habe eine Exceldatei mit z.B. 30 Tabellenblättern. Dabei ist die erste Tabelle (also Nr. 1) quasi die Einstiegstabelle.

Gibt es eine Möglichkeit, mit Makros folgenden Abläufe umzusetzen:

- Ich befinde mich in einem Tabellenblatt, angenommen Nr. 20.
- Nun will ich mit einem Makro zur Einstiegstabelle wechseln, speichern und schließen.
- Beim nächsten öffnen befinde ich mich in der Einstiegstabelle, kann aber von da aus zu der Tabelle wechseln, in der ich mich das letzte Mal befand, im Bsp. also Nr.20.

- Wie speichern und schließen funktionieren, weiß ich. -
Aber wie gelang ich von der Starttabelle beim öffnen in die beim letzten mal genutzte Tabelle zurück?

Hatte die Idee, von dem entsprechendem Blatt den Namen in eine Zelle einzufügen und in die Starttabelle zu kopieren. Über einen Makro könnte mit dem gespeicherten Namen zu der Tabelle gesprungen werden. Aber geht so etwas überhaupt?

Wäre nett, wenn mir da jemand helfen könnte.

Vielen Dank schon mal im Vorraus

Grüße

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
warum muss zur Startabelle gewechselt werden, wenn beim nächsten Öffnen doch die alte Tabelle aktiviert wird?
In VBA ist fast alles möglich.

Gruß Hajo
0 Punkte
Beantwortet von
dann wäre es ja zu einfach ;-)

ist an gewisse Bedingungen geknüpft - soll eben damit starten und zur letzten Tabelle springen.

Manuell soll dies nicht gehen, da die Registerblätter nicht sichtbar sind.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
gut, ich bin dann raus. Du möchtest es für Dich behalten.

Gruß Hajo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein Beispiel

gruss nighty

einzufuegen alt+f11/projektexplorer/DeineArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Tabelle1").Cells(1, 1) = ActiveSheet.Name
End Sub


Private Sub Workbook_Open()
Worksheets("" & Worksheets("Tabelle1").Cells(1, 1)).Activate
End Sub
0 Punkte
Beantwortet von
Hat leider nicht zum gewünschten Ergebnis geführt.

Trotzdem danke!
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

benutze das SheetDeactivate-Ereignis im Codemodul DieseArbeitsmappe:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name <> "Einstiegstabelle" Then _
Worksheets("Einstiegstabelle").Range("A1") = Sh.Name
End Sub


dann kannst du die betreffende Tabelle beim Öffnen aufrufen:

Private Sub Workbook_Open()
Dim strTabelle As String
strTabelle = Worksheets("Einstiegstabelle").Range("A1")
If Not IsError(Application.Evaluate("'" & strTabelle & "'!A1")) Then _
Worksheets(strTabelle).Activate
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von
Hallo zusammen,

habe inzwischen eine andere Lösung für das Problem entwickelt.

Bedanke mich aber trotzdem für eure Ratschläge und Mühen.

Grüße
...