Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
792to796
792to796
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

letzte aktive Tabelle merken

letzte aktive Tabelle merken
17.08.2006 18:17:51
Wolfgang
Hallo,
gibt es eine Möglichkeit, dass Excel sich das zuletzt aktive Tabellenblatt merkt, zwischenzeitlich einen x-beliebigen Code ausführt, der zu einer anderen Tabelle führt, um dann wieder zum Tabellenblatt, welches vor Ausführen des Codes aktiv war, zurückzukehren? - Wäre für jede Hilfestellung sehr dankbar.
Gruß - Wolfgang

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: letzte aktive Tabelle merken
17.08.2006 18:29:13
Heiko
Hallo Wolfgang,
ja z.B. so:

Sub Beispiel()
Dim strStartBlatt As String
' Blatt aus dem gestartet wurde merken
strStartBlatt = ActiveSheet.Name
' Nun irgendwas tun.
ActiveWorkbook.Worksheets("Tabelle2").Activate
Range("A1") = "Test 1234 "
ActiveWorkbook.Worksheets("Tabelle3").Activate
Range("A1") = "Test 5678 "
' Und nun zurück dahin wo man hergekommen ist
ActiveWorkbook.Worksheets(strStartBlatt).Activate
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett
AW: letzte aktive Tabelle merken
17.08.2006 18:38:28
Wolfgang
Hallo Heiko,
herzlichen Dank für die schnelle Rückmeldung; ich werde Deinen Code morgen direkt (habe die Datei auf meinem "Dienstrechner") umsetzen und testen. Nehme aber an, dass er funktionieren wird. Daher nochmals recht herzlichen Dank!!! - Sollte noch eine Frage hierzu sein, werde ich mich erneut melden.
Gruß - Wolfgang
Anzeige
AW: letzte aktive Tabelle merken
17.08.2006 18:48:08
Heide_Tr
hallo Wolfgang,
vielleicht ist es einen Gedanken wert, eine Dateieigenschaft einzurichten?
ActiveWorkbook.CustomDocumentProperties.Add Name:="Letztes Tabellenblatt", _
LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=0
Du würdest immer, wenn's gebraucht wird, das aktive Tabellenblatt hineinschreiben:
ActiveWorkbook.CustomDocumentProperties("Letztes Tabellenblatt").Value = _
ActiveSheet.Index
Dann hast Du die Information auch dann noch, wenn die Datei geschlossen wird.
viele Grüße. Heide
AW: letzte aktive Tabelle merken
17.08.2006 19:18:04
Wolfgang
Hallo Heide,
auch Dir recht herzlichen Dank für die schnelle Rückmeldung; Wenn ich Deinen Code richtig verstehe, wird der erste Teil in "Diese Arbeitsmappe" kopiert und der zweite Teil in das jeweilige Tabellenblatt? - Wäre Dir für eine kurze Rückmeldung dankbar, da ich nicht weiß, wo ansonsten genau der Code hineinzukopieren ist.
Danke und Gruß
Wolfgang
Anzeige
AW: letzte aktive Tabelle merken
18.08.2006 06:56:43
Heide_Tr
hallo Wolfgang,
den ersten Teil läßt Du nur ein einziges Mal laufen, damit er die Dateieigenschaft anlegen kann. (später zu sehen über Datei / Eigenschaften / Anpassen)
Wann Du diese Dateieigenschaft mit dem aktuellen Wert versorgst liegt an Deinen Bedürfnissen.
Soll es beim Verlassen (Wechsel) des Workbooks geschehen, gehört der Code in "Diese Arbeitsmappe" - "Workbook_Deactivate()".
Soll es beim Wechsel eines bestimmten Tabellenblattes geschehen, gehört er in das Tabellenblatt - "Worksheet_Deactivate()".
Soll es immer beim Wechsel eines Tabellenblattes geschehen, gehört er in "Diese Arbeitsmappe" - "Workbook_SheetChange"
Gestern hast Du geschrieben "zwischenzeitlich einen x-beliebigen Code ausführt" und ich denke, dass genau vor diesen Code das Schreiben der Dateieigenschaft gehört.
Wenn Du am Ende zum letzten Tabellenblatt zurückspringen willst - auslesen der Dateieigenschaft über: Worksheets(ActiveWorkbook.CustomDocumentProperties("Letztes Tabellenblatt").Value).Activate - musst Du auch wieder entscheiden, wo das steht.
Direkt hinter Deinem "x-beliebigen" Code, beim Aktivieren der Datei (Workbook_Activate()) oder ...
Diese Überlegungen sind aber unabhängig davon, wo und wie Du Dir das letzte Tabellenblatt merkst (also ob in einer Dateieigenschaft oder in einer "normalen" Variablen, oder ...).
Eine Dateieigenschaft hätte vor allem den Vorteil über die Laufzeit des Programms hinaus (also auch nach dem Schließen der Datei) noch erhalten zu bleiben.
viele Grüße. Heide
Anzeige
AW: letzte aktive Tabelle merken
17.08.2006 19:58:04
Erich
Hallo Wolfgang,
wenn Du das Blatt nur wissen musst, so lange die Mappe geöffnet ist, gehts auch so:
Sub Beispiel2()
Dim wksStart As Worksheet
Set wksStart = ActiveSheet          ' Startblatt merken
' Nun irgendwas tun.
Worksheets("Tabelle2").Activate
Range("A1") = "Test 1234 "
Worksheets("Tabelle3").Activate
Range("A1") = wksStart.Range("A1")  ' z. B. Wert aus Startblatt holen
wksStart.Activate                   ' Startblatt wieder aktivieren
End Sub
Bei den Bearbeitungsschritten in der Mitte kannst so auch leicht auf Werte usw. des Startblatts zugreifen.
Zum Vorschlag von Heide:
Die beiden ersten Codezeilen müssen nur ein einziges Mal ausgeführt werden.
Das kannst Du auch per Hand machen (Datei - Eigenschaften - Anpassen).
Die beiden anderen Codezeilen kommen in Dein Makro - da, wo Du Dir das gerade aktive Blatt merken willst.
Statt der Nummer (Index) des Blatts wäre es eventuell angebracht,
den Namen des Startblatts in die Properties zu schreiben.
Dann stören Blattsorts oder -verschiebungen nicht.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: letzte aktive Tabelle merken
17.08.2006 20:32:57
Erich
Hallo Wolfgang,
mit dem Tabnamen in den Eigenschaften ginge das so:
Sub InitEigenschaft()
'                                         einmalig Dateieigenschaft einrichten:
ActiveWorkbook.CustomDocumentProperties.Add Name:="GemerktesBlatt", _
LinkToContent:=False, Type:=msoPropertyTypeString, Value:=""
End Sub
Sub DeinMakro()
' irgend etwas tun
' irgend etwas tun
' irgend etwas tun
'                                   im Code da, wo das aktive Blatt gemerkt werden soll:
ActiveWorkbook.CustomDocumentProperties("GemerktesBlatt").Value = _
ActiveSheet.Name
' irgend etwas tun
' irgend etwas tun
' irgend etwas tun
'                        im Code da, wo das gemerkte Blatt wieder aktiviert werden soll:
Worksheets(ActiveWorkbook.CustomDocumentProperties("GemerktesBlatt").Value).Activate
' irgend etwas tun
' irgend etwas tun
' irgend etwas tun
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: letzte aktive Tabelle merken
17.08.2006 22:05:33
Wolfgang
Hallo Erich,
ich freue mich sehr über Deine Erläuterungen und Hinweise. Beide Codes werde ich direkt morgen umsetzen und versuchen. Durch Deine Erläuterungen sind mir nun einige Dinge klarer geworden. Herzlichen Danke dafür und weiterhin alles Gute.
Gruß - Wolfgang
AW: Danke für Deine Rückmeldung! (oT)
17.08.2006 22:14:02
Erich
AW: letzte aktive Tabelle merken
17.08.2006 23:05:09
Josef
Hallo Wolfgang!
Wenn man auf "Select" und "Activate" verzichtet und sauber referenziert, dann braucht man das aktive Blatt gar nicht verlassen!
Gruß Sepp

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen