Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrstufiges Workbook.close funktioniert nicht

Forumthread: Mehrstufiges Workbook.close funktioniert nicht

Mehrstufiges Workbook.close funktioniert nicht
26.03.2009 15:06:57
roban
Hallo!
Beim Öffnen einer Excel-Mappe "w2.xls" soll eine weitere Excel-Mappe "w3.xls" automatisch geladen werden, und wenn "w2.xls" geschlossen wird, soll auch "w3.xls" automatisch geschlossen werden.
Das klappt soweit auch, in "w2.xls" sind dafür folgende Makros enthalten:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks("w3.xls").Close
End Sub



Private Sub Workbook_Open()
Workbooks.Open ("c:\temp\w3.xls")
End Sub


Das ganze soll jetzt um eine Stufe erweitert werden, sodaß beim Öffnen der Mappe "w1.xls" die Mappe "w2.xls" geladen wird, die wiederum "w3.xls" lädt. In "w1.xls" sind die gleichen Makros wie in "w2.xls" enthalten (mit entsprechend geändertem Mappennamen).
Beim Schließen von "w1.xls" sollte dann also "w2.xls" geschlossen werden, welches wiederum "w3.xls" schliessen sollte.
Das klappt aber nicht, wenn man manuell "w1.xls" schließt, werden "w1.xls" und "w2.xls" geschlossen, "w3.xls" bleibt aber geöffnet, d.h. der letzte Befehl "Workbooks("w3.xls").Close" funktioniert nicht.
Im Debugger kann man sehen, daß der Befehl ausgeführt wird, es passiert jedoch einfach nichts, auch keine Fehlermeldung.
Hat jemand eine Idee woran das liegt und wie man es beheben kann?

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrstufiges Workbook.close funktioniert nicht
27.03.2009 11:11:48
Chris
Servus,
probier mal das:
in w1.xls:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Long
Application.EnableEvents = True
For i = Workbooks.Count To 1 Step -1
If Workbooks(i).Name = "w2.xls" Or Workbooks(i).Name = "w3.xls" Then
Workbooks(i).Close
End If
Next i
Application.EnableEvents = True
End Sub



Private Sub Workbook_Open()
Workbooks.Open ("C:\temp\w2.xls")
End Sub


und in w2.xls :


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Long
Application.EnableEvents = True
For i = 1 To Workbooks.Count
If Workbooks(i).Name = "w3.xls" Then
Workbooks(i).Close
End If
Next i
Application.EnableEvents = True
End Sub



Private Sub Workbook_Open()
Workbooks.Open ("C:\temp\w3.xls")
End Sub


Gruß
Chris

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige