Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel Datei per Makro schließen
#1
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?
Antworten Top
#2
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
Gruß Atilla
Antworten Top
#3
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
Antworten Top
#4
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
Gruß Atilla
Antworten Top
#5
Hallo Atilla,

leider funktioniert das bei mir nicht, das Programm zeigt mir bei dieser Variante immer einen Fehler im Code an.
Antworten Top
#6
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.
Gruß Atilla
Antworten Top
#7
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
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?
Antworten Top
#10
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste