Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird

Forumthread: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird

Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 14:12:44
Georgi
Hallo VBA-Experten,
ich habe 2 Excel-Dateien in denen jeweils Workbook_Activate in DieseArbeitsmappe definiert ist.
Das funktioniert auch sehr gut, wenn man zwischen den Dateien hin- und herspringt.
Wenn allerdings eine Datei geschlossen wird (dabei werden die dort gesetzen Einschränkungen zurückgesetzt), greift das Aktivate bei der 2. Datei nicht (EnableEvents ist immer true).

Ich habe nun hier schon gelesen, dass man es ggf. mit Workbook_WindowDeactivate in den Griff bekommen könnte.
Meine Idee dabei ist, dass ich auf die Startseite der Datei springe, wenn die Anwendung gewechselt wird (z.b. Wechsel auf Explorerfenster).
Dies bekomme ich aber nicht umgesetzt, kann mir da jemand behilflich sein?

Viele Grüße
Georgi
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 17:55:14
Marc
meinst du ThisWorkbook.Activate?
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
03.03.2025 10:40:46
Kuwer
Hallo Georgi,

Du schreibst (dabei werden die dort gesetzen Einschränkungen zurückgesetzt), aber postest nicht die Codes.
Weiterhin schreibst Du (EnableEvents ist immer true),
was ich aber nicht glaube, weil es dann auch funktionieren würde.

Gruß, Uwe
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
04.03.2025 21:16:25
Georgi
Hallo nochmal,

ich habe in der Mittagspause den Fehler eingrenzen können.
Es liegt daran, dass die Datei mit ThisWorkbook.Close (im Modul1) oder auch mit ActiveWorkbook.Close geschlossen wird.
Jede Datei wird über einen Button geschlossen, der im Script als letztes obigen Close-Befehl enthält.
Man kann den Fehler auch nachvollziehen, wenn man nur diesen Close-Befehl im Makro aufruft.

Das Code sieht dann in Datei 1 so aus:
in DieserArbeitsmappe
Private Sub Workbook_Activate()
msgbox "Datei1 Activate"
end sub

Modul1
sub raus()
thisworkbook.close
end sub

in Datei 2 das Gleiche, zur Unterscheidung nur msgbox "Datei2 Activate"

Hat jemand eine Idee, wie man das Lösen kann, dass wenn eine Datei per Button geschlossen wird, in der anderen Datei das Thisworkbook_Activate ausgeführt wird?

Wenn eine Datei normal übers Menü oder dem X rechts oben geschlossen wird, wird das Activate in der anderen Datei ausgeführt.

Viele Grüße
Georgi
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
04.03.2025 21:18:36
Georgi
wieder das Frage offen vergessen... sorry
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
05.03.2025 00:29:11
Kuwer
Hallo Georgi,

das ist interessant. Ich kann das Verhalten bei mir nachvollziehen. Das war aber nicht immer so. :-/
Eine Alternative für Dich wäre vielleicht, den Code aus Workbook_Activate nach Workbook_Deactivate zu verschieben/kopieren.

Gruß, Uwe
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
05.03.2025 05:57:26
Georgi
Moin Uwe,

na immerhin kann es nachvollzogen werden :-)
Dein Vorschlag greift aber leider nicht, da wie eingangs geschrieben, beim Schließen die in der jeweiligen gesetzen Application-Opitionen / - Parameter zurückgesetzt werden.
Das bedeutet für die noch geöffnete Datei, dass der zurückgesetzte Application-Zustand gilt.
Daher ist es notwendig, dass mit Activate die Optionen / Parameter in der geöffneten Datei wieder gesetzt werden müssen.
Bei Deactivate wäre das ja beim Schließen der Datei 1 obsolet.

Viele Grüße
Georgi

Anzeige
AW: Korrektur
05.03.2025 21:54:52
Georgi
Moin,

mag sein, aber das hilft mir nicht weiter.
Eigenartig, dass es nach so langer Zeit hat noch keine Lösung dafür geben soll...

Meine Frage also weiter offen...

Viele Grüße
Georgi
Anzeige
AW: Korrektur
06.03.2025 10:45:36
Kuwer
Hallo Georgi,

wenn Dir das gar nicht weiter half, hast Du den verlinkten Thread vermutlich nicht angesehen?

So sollte es (hoffentlich) immer funktionieren:
Sub raus()

If Windows.Count > 1 Then
If Windows(2).Visible Then
Windows(2).Activate
End If
End If
ThisWorkbook.Close
End Sub


Gruß, Uwe
Anzeige
AW: Korrektur
06.03.2025 12:35:55
Georgi
Hallo Uwe,
doch das hatte ich mir angesehen.
Dachte nur, es kann nicht funktionieren, da nach dem Activate ja wieder auf das zu schliessende Workbook gewechselt wird.
Vielleicht habe ich das aber falsch verstanden oder interpretiert; ich werde es nun doch mal testen.
Vorerst vielen Dank!

Viele Grüße
Georgi
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 19:10:00
Georgi
Hallo Marc,
nein, so sieht das aus:

Private Sub Workbook_Activate()
End Sub

Viele Grüße
Georgi
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 19:10:53
Georgi
Frage noch offen...
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 19:27:28
Marc
Das ist in jeder Excel Datei hinterlegt.
Schaue ob in beiden Excel Dateien

in diesem Bereich was steht..





Private Sub Workbook_Activate()
End Sub



jedes Mal wenn als das Workbook aktiviert wird, wird ein Code der da drin steht ausgeführt

Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 19:50:51
ralf_b
was soll denn da passieren? Es steht gar kein Code "in" dem Makro.
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
02.03.2025 23:57:01
Georgi
Moin,
in beiden Dateien wird dort die Startseite aufgerufen, call Startseite eben ;-)
Das funktioniert ja auch, beim Wechsel von der einen zur anderen Excel-Datei.
Wo es es nicht funktioniert, wenn eine Datei geschlossen wird.
Dann wird in der offenen Datei dies nicht als "Activate-Wechsel" erkannt und es wird nicht die Startseite aufgerufen.
Das soll es aber.

Viele Grüße
Georgi
Anzeige
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
03.03.2025 12:30:55
Marc
Wie sieht denn genau der Code aus der jeweils in Worksheet Active hinterlegt ist..

dann wird vielleicht deutlicher wo der Fehler ist.
AW: Workbook_Activate greift nicht,wenn 2.Datei geschlossen wird
03.03.2025 12:48:06
Marc
Ich denke das Problem liegt wahrscheinlich darin,
dass wenn eine Datei geschlossen ist, und im Code auf diese geschlossene Datei zugeriffen werden soll" ein Error entsteht und Excel dann weiteren Code abbricht und nicht weiter ausführt.

Das heißt du musst im Code überprüfen, ob die jeweils andere Datei geöffnet ist . wenn ja führe Code A aus , wenn nein führe Code B aus
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18