Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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
Inhaltsverzeichnis

Makro ausführen vor einen Tabellenwechsel

Makro ausführen vor einen Tabellenwechsel
05.10.2023 15:36:10
JBR
Hallo zusammen,

ich möchte gerne bevor ich einen Tabellenblattwechsel vornehme ein Makro (oder die Befehlskette aus dem Makro) ausführen.

Das Makro als solches funktioniert einwandfrei und ich kann es auf dem gewünschten Tabellen benutzen. Nur soll es automatisch beim Wechsel auf ein anderes Tabellenblatt nochmals ausgeführt werden.

Ich habe es mit “Private Sub Worksheet_Deactivate" ausprobiert, nur habe ich das Gefühl, dass dann das Makro auf dem anderen Tabellenblatt durchläuft.

Vielleicht hat jemand eine Idee?

Viele Grüße,
Jörg



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

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 15:58:57
Oberschlumpf
Hi Jörg,

..."beim Wechsel auf ein anderes Tabellenblatt"...

Ja, dann schreib doch ins SheetActivate-Ereignis von "anderes Tabellenblatt" so was z Bsp

MakroName


und mit "MakroName" mein ich genau den Namen des Makros, welches erneut durchgeführt werden soll.

Ciao
Thorsten
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 16:15:38
daniel
HI
das hängt halt davon ab, was du wie programmiert hast.
du müsstest uns den Code schon zeigen.
wenn das Makro im Modul des jeweiligen Tabellenblatts steht, dann sollten alle Zellbezüge ohne Tabellenblattangabe davor noch auf das alte deaktivierte Tabellenblatt laufen und wenn du im neuen arbeiten willst, müsstest du das explizit mit ActiveSheet vor dem Zellbezug angeben.

Solltest du im Eventmakro ein Makro aus einem allgemeinen Modul aufrufen, dann referenzieren dort Zellbezüge ohne Tabellenblattangabe auf das neue Tabellenblatt und nicht auf das deaktivierte.
wenn du sowas haben willst, müsstest du eine Parameterübergabe programmieren und das alte Blatt als Parameter an das Makro übergeben.
Gruß Daniel
Anzeige
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 17:22:46
JBR
Hallo,

vielen Dank für alle Antworten.

Ich habe es wie von Gerd beschrieben gemacht. Aber die Ausführung des Makros findet dann auf dem “neuen Tabellenblatt“ statt.

Ich habe eine Datei mit meinem Code angehängt.

Viele Grüße,
Jörg
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 17:29:43
daniel
HI
du musst auch den Link kopieren und in deinen Beitrag einfügen.
das geht nicht automatisch.
beachte bitte, dass du den Link in eine eigene Zeile einfügst oder zumindest davor und danach ein Leerzeichen platz lässt.
sonst wird der Link kein Link den man anklicken kann, sondern bleibt text
Gruß Daniel
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 17:38:05
JBR
Sorry verpennt!

https://www.herber.de/bbs/user/163253.xlsm

Viele Grüße,
Jörg
Anzeige
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 17:45:00
daniel
du hast in der Datei ein Worksheet_Activate-Makro, kein Worksheet_DeActivate-Makro wie in deiner Beschreibung.
das Activate-Makro läuft natürlich in dem Tabellenblatt zu dem du gewechselt hast und nicht in dem, welches du verlassen hast.
Gruß Daniel
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 17:51:10
JBR
Hallo Daniel,

genau das is mein Problem. Ich bekomme das Makro “Tageswechsel_Uhrzeit“ nicht auf dem Tabellenblatt01 gestartet wenn ich das Tabellenblatt verlasse.

Ich stehe auf dem Schlauch wie ich es einbinden kann.

Viele Grüße,
Jörg
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 18:07:52
daniel
Hi
1. du solltest Makro und Modul immer unterschiedlich benennen, sonst wird es schwierig mit dem Aufruf.
2. als erstes solltest du das marko so umschreiben, dass du ohne Selects auskommst und die Zellen immer direkt referenzierst.
also nicht
Range("L10:N" & letzteZeile).Select


For Each rngZelle In Selection


sondern
For Each rngZelle In Range("L10:N" & letzteZeile)


dann musst du, da du das Makro ja nach dem Verlassen des Blattes ausführen willst und das verlassene Blatt nicht mehr aktiv ist, das Tabellenblatt als Parameter übergeben und dann vor jedem Range mit angeben.

Sub Tageswechsel_Uhrzeit(wsh as worksheet)

...
letzteZeile = wsh.Range("B" & Rows.Count).End(xlUp).Row
For Each rngZelle In wsh.Range("L10:N" & letzteZeile)
...

und dann musst du im DeActivate-Event das Makro mit diesem Befehl aufrufen:
Call Tageswechsel_Uhrzeit(Me)

ME ist in einem Tabellenblattmodul immer das Tabellenblatt des jeweiligen Moduls.

Gruß Daniel
Anzeige
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 18:23:30
JBR
Hallo Daniel,

der Hammer! Vielen Dank für den super schneller und erfolgreichen Support.
Es läuft wie gewünscht und ich habe wieder was dazu gelernt.

Schönen Abend.

Viele Grüße,
Jörg
AW: Makro ausführen vor einen Tabellenwechsel
05.10.2023 16:53:10
GerdL
Hallo Jörg!

Private Sub Worksheet_Deactivate()


Call Unit(Me)

End Sub

Sub Unit(X As Worksheet)

MsgBox X.Name

End Sub


Gruß Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige