Anzeige
Archiv - Navigation
1556to1560
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

workbook_BeforeClose soll ausgeführt werden

workbook_BeforeClose soll ausgeführt werden
06.05.2017 21:22:34
Barbaraa
Hallo
Wie muss man es anstellen, dass folgendes Makro
Sub workbook_BeforeClose(Cancel As Boolean)
Worksheets("Hauptblatt").Select
Range("Kundenname").Select
Workbooks(Range("Materialliste").Value).Close SaveChanges:=True
End Sub

ausgeführt wird, wenn das Workbook von einen anderen Workbook aus mit wb.Close geschlossen wird.
Dieses Makro wird zwar durchlaufen, auch schrittweise, doch keine der drei Zeilen wird ausgeführt. Auch nicht, wenn ich mit
wb.Activate
wb.Close

abschließe.
Beim händischen Schließen wird es problemlos ausgeführt.
Allerdings wird "workbook_open()" beim Aufruf "Set wb = Workbooks.Open(..." sehr wohl ausgeführt.
LG, Barbara

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: workbook_BeforeClose soll ausgeführt werden
07.05.2017 10:04:58
Hajo_Zi
Du kannst nur auf Aktive Tabellen ein select machen.
ohne diese Zeilen wird der Code bei mir korrekt ausgeführt.
Zu WB, nur wenige sehen den kompletten Code und können sehen wo wb definiert.

AW: workbook_BeforeClose soll ausgeführt werden
07.05.2017 23:57:17
Barbaraa
Hallo
es geht weniger um die Zeilen mit Select, aber um die dritte Zeile mit workbooks-close.
Hier habe ich mal drei Beispieldateien vorbereitet. Da in meinen Makros die Dateinamen von Bedeutung sind, die hochgeladenen Dateien aber neue Namen bekommen, müssen die Namen vor Ausführung umbenannt werden. Sonst funktioniert es nicht.
Bitte https://www.herber.de/bbs/user/113393.xlsm zu Mappe0.xlsm,
https://www.herber.de/bbs/user/113394.xlsx zu Mappe1.xlsx und
https://www.herber.de/bbs/user/113395.xlsm zu Mappe2.xlsm umbenennen.
Dann Mappe2 öffnen.
Wenn Mappe2 geöffnet wird, wird auch Mappe1 geöffnet, beim Schließen von Mappe2 wird auch Mappe1 geschlossen.
Das funktioniert.
Mappe0 öffnen (die beiden anderen Mappen sind geschlossen).
Wenn Mappe0 geöffnet wird, wird auch Mappe2 geöffnet, und damit auch Mappe1. So wie es sein soll.
Beim Schließen von Mappe0 wird auch Mappe2 geschlossen. Aber Mappe1 wird nicht geschlossen, obwohl in Mappe2 der folgende Code steht:
Sub workbook_BeforeClose(Cancel As Boolean)
Workbooks("Mappe1.xlsx").Close SaveChanges:=True
End Sub
Und nun zu meiner ursprünglichen Frage:
Wie kann man erreichen, dass dies dennoch ausgeführt wird. Der Code ist ja schließlich da und wenn ich dort eine Stoppmarke (mit F9) setze, hält das Programm dort auch an.
Hoffe, das war nicht zu verwirrend.
LG,
Barbara
Anzeige
AW: workbook_BeforeClose soll ausgeführt werden
08.05.2017 07:27:25
fcs
Hallo Barbara,
bei mir stürzt Excel sogar ab, wenn ich versuche Mappe0.xlsm zu schliessen. Das Kaskadieren mehrerer Makros beim Schließen einer Datei funktioniert nicht so richtig.
Passe das Workbook_Close-Makro in Mappe0.xlsm wie folgt an. Dann werden alle Dateien von dieser Datei aus geschlossen.
'Makro in Mappe0.xlsm
Sub workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.EnableEvents = False
Workbooks("Mappe1.xlsx").Close SaveChanges:=False
Workbooks("Mappe2.xlsm").Close SaveChanges:=False
Application.EnableEvents = True
End Sub
In Mappe2.xlsm solltest du das Makro wie folgt anpassen. Dann gibt es keine Fehlermeldung wenn Mappe1.xlsx schon geschlossen wurde.
'Makro in Mappe2.xlsm
Sub workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Workbooks("Mappe1.xlsx").Close SaveChanges:=True
End Sub
LG
Franz
Anzeige

85 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige