Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2 Dateien schließen

2 Dateien schließen
13.02.2007 10:36:09
kristin
Hallo,
ich habe eine XLS-Datei, die eine Prozedur in einem XLA aufruft. In bestimmten Situationen soll diese Prozedur erst das XLS und dann auch sich selbst schließen. Problem ist, dass folgedes (im XLA) nach dem Schließen der Arbeitsmappe(XLS) abbricht ohne sich selbst noch zu schließen:
Application.DisplayAlerts = False
Application.ActiveWorkbook.Close
Application.ThisWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
Was mache ich falsch? Ich hatte an eine Umsetzung nach Zeit (OnTime) gedacht, wollte aber lieber mal nachfragen, ob es einen Grund für das Abbrechen gibt, oder ob ich mir sonst irgendwie anders helfen könnte.
vielen Dank für Ideen,
Kristin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Dateien schließen
13.02.2007 13:01:34
Michael Heering
Hallo Kristin!
Soweit ich das verstehe schließt Du mit beiden Methoden die aktive Mappe. Du kannst das umgehen, indem Du
Windows("?????????.xls").activate einfügst und dann
Application.ActiveWorkbook.Close
Application.ThisWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
oder Du schließ die andere Mappe mit
Windows("?????????????????.xls").close und dann
Application.ThisWorkbook.Close
Application.DisplayAlerts = True
Exit Sub
Gruß
Michael Heering
AW: 2 Dateien schließen
13.02.2007 16:55:01
Kristin
Hallo Michael,
ich habe deinen Vorschlag einfach mal in ein leeres AddIn und ein 'frisches' Arbeitsblatt eingebaut, nachdem das ganze in meiner Datei nicht funktioniert hatte. Siehe da, es klappt. Promt habe ich meine Variante auch getestet und es funktioniert, also muss das Problem in meinen Dateien liegen, nicht an den Funktionen an sich.
Kurz noch mal zu den Dateien die ich schließen will: einmal benutze ich ActiveWorkbook, was das momentan in Excel sichtbare, bzw. aktivierte Arbeitsblatt schließt, zum anderen benutze ich ThisWorkbook, welches das AddIn schließt, in dem der eigentliche Code steht. Ich schließe also erst die XLS-Mappe, danach das XLA-AddIn selbst(2 verschiedene Dateien).
Nun, durch deinen Code, wurde mir klar, dass das Problem in meinem XLS liegen muss, und zwar in irgendwelchen Before-Close- oder Workbook-Deactivate-Events. Hier gibt es diverse andere Funktionen, die nichts mit diesem Fall zu tun haben, aber anscheinend durch das Schließen ausgelöst werden. Ich vermute das die Event-Prozeduren ausgeführt werden, und dann, wenn die Datei 'plötzlich' weg ist, der ursprüngliche Prozeduraufruf 'vergessen' wird. Denn beim Debuggen springt Excel nicht wieder in die Ursprungs-Prozedur in dem XLA zurück... er verschluckt sich wohl. Application.EnableEvents = False bringt komischer Weise nichts... es werden zwar die Events nicht ausgelöst, aber trotzdem hört die Prozedur im 'Nichts' auf, dierekt nach dem Schließen der ersten Datei.
Ich denke ich versuche mal die OnTime-Variante, aber lasse den Fall mal auf ungelöst, vielleicht stolpert ja noch ein Tüftler hierüber, ich bin wirklich verwundert, warum excel einfach so das Ausführen der Prozedur abbricht, anstatt einer Fehlermeldung.
vielen Dank für den Anstoß, Michael.
gruß kristin
Anzeige
AW: 2 Dateien schließen
17.02.2007 14:03:24
schauan
Hallo Kristin,
wo hüpft den der gelbe Balken überall hin wenn Du den code beim Schließen schrittweise ausführst? Eventuell bringt Dich das weiter.
AW: 2 Dateien schließen
19.02.2007 09:43:14
Kristin
Hallo Andre,
der gelbe Balken :) er hüpft in die Events die beim Schließen ausgeführt werden: BeforeClose, WorkbookDeaktivate etc. allerdings bricht meine Schließen-Prozedur auch dann ab, wenn ich Application.EnableEvents = False setze. In diesem Fall schließt Excel die erste Datei, aber nicht die zweite (welches die Datei mit der Prozedur selbst ist).
Ich habe es auch mal in einer 'nackten' Datei mit leerem XLA versucht, da klappt es, also muss es an meinen Dateien liegen. Mit OnTime() geht es ganz wunderbar, ich starte erst die Zeitverzögerte Funktion zum Schließen des XLA, direkt danach schließe ich das XLS, und ein paar Sekündchen später schließt dann das XLA... geht toll... nicht ganz sauber aber es läuft :)
viele Grüße,
Kristin
Anzeige
AW: 2 Dateien schließen
19.02.2007 17:30:39
schauan
Hallo Kristin,
ich wollte eigentlich wissen, wo der Balken hängen bleibt bzw was in der Zeile steht. Vielleicht erfolgt der Abbruch weil Excel noch mit irgendwas beschäftigt ist - und sei es nur das Schließen der einen Datei, aber vielleicht wird auch beim Schließen noch was berechnet - siehe die Option unter Extras .. Berechnen beim Schließen. Deshalb läuft es wahrscheinlich mit der Wartezeit.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige