Clever-Excel-Forum

Normale Version: Excel Datei per Makro schließen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe gerade den Code in meine Excel Datei integriert, um eine zweite Excel Datei im Hintergrund mit diesem Dokument gleichzeitig zu starten. Wie ist es möglich, die zweite Excel Datei (ohne zu speichern) zugleich mit der aktuellen Excel Datei per Makro zu schließen!? Wer hätte da eine Lösung?
Hallo,

das kannst Du im BeforeClose von DieseArbeitmappe regeln.

Z.B.:


Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Workbooks("xy").Close False
End Sub
Hallo Atilla,

dank Dir für den Vorschlag. Was mache ich da falsch: ich habe versucht den Code im Register "Diese Arbeitsmappe" zu integrieren (siehe unten), es funktioniert aber nicht.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

   Workbooks(ThisWorkbook.Path & "\test.xlsm").Close False

End Sub
Hallo,

die Datei ist ja aus der Datei heraus geöffnet worden, dann brauchst Du keine Pfadangabe:


Das müsste reichen

Code:
Workbooks("test.xlsm").Close False
Hallo Atilla,

leider funktioniert das bei mir nicht, das Programm zeigt mir bei dieser Variante immer einen Fehler im Code an.
Hallo,

dann weiß ich leider nicht weiter.
Bei mir funktioniert mein Vorschlag.

Folgende Vorgaben:
Date1 hat den Code und aus der Datei heraus ist Datei2 geöffnet. (gleiche Excel Instanz)
Datei2 ist geöffnet und Datei1 mit dem Code wird geschlossen über das Schließkreuz beispielsweise.
Beim Schließen wird auch die Datei2 geschlossen.

Ich habe jetzt aber gesehen, dass Excel leer geöffnet bleibt. Dafür habe ich auf die Schnelle keine Lösung. Application.Quit ändert auch nichts.
Hallo sunny,

wenn Du über Fehler berichtest solltest Du sie auch genauer beschreiben.
Wenn Du als Browser den Edge benutzt könnte das helfen:
http://www.clever-excel-forum.de/misc.php?action=help&hid=9
Hallöchen,

Application.Quit läuft im Before_Close nicht so einfach Sad

Eventuell hilft

Application.DisplayAlerts = False
ThisWorkbook.Saved = True
Application.Quit

oder alternativ Application.Quit in ein gesondertes Makro, dazu noch die Events disablen und es mit einer kurzen Verzögerung aufrufen.
Hallo,

vielen Dank für Eure Beiträge. Ich sehe in diesem Fall noch die Möglichkeit, die zweite Excel Datei und die aktuelle Excel Datei durch Button (und Makro) aktiv in einem Arbeitsblatt zu schließen (ohne Workbook_BeforeClose), kann es dann eventuell funktionieren bzw. wie müsste der Code dazu aussehen?
Hallöchen,

ein anderes kannst Du so schließen
Workbooks("anderes.xlsm").Close
wobei Du darauf achten musst, ob es ein xlsm oder xlsx oder xlsb oder was auch immer ist.
Das mit dem Code schließt Du mit
ThisWorkbook.Close

Der Code kommt in ein "normales" Modul und Makro und kann dann mit dem Button verknüpft werden.


Achte auch auf Hinweise wie

Application.DisplayAlerts = False

ThisWorkbook.Saved = True

oder das False nach dem Close oder stattdessen SaveChanges:=False
Seiten: 1 2