Wenn eine Datei geöffnet und bearbeitet wurde, soll sie irgendwann auch wíeder geschlossen werden. Das wiederum kann manuell oder mit einem Makro erledigt werden.
Das manuelle Schließen war schon im Beitrag „VBA-Methoden: Eine Datei schließen“ ein Thema. Dabei wurde vor dem Schließen eine Speicherung mit einem Makro vorgenommen.
Wenn du eine Datei mit einem Makro schließen willst, gibt es auch hierbei verschiedene Möglichkeiten.
Einfaches Schließen einer Datei
Für das Schließen der aktiven Datei wird die Methode Close genutzt. Das geht so:
Sub SchließenDatei1()
ActiveWorkbook.Close
End Sub
Wenn du vorher nicht gespeichert hast, bekommst du diese Mitteilung:
Erst wenn du dann „Speichern“ klickst, wird die Datei geschlossen. Das kannst du umgehen, wenn du den Speichern-Befehl in deinen Code mit einbaust. Zwei Möglichkeiten hast du hierfür:
Sub SchließenDatei2()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
oder so:
Sub SchließenDatei3()
ActiveWorkbook.Close SaveChanges:=True
End Sub
Nach dem Close-Befehl wird zusätzlich die Anweisung gegeben, dass die Speicherung von Veränderungen vorgenommen wird.
Schließen einer zusätzlich geöffneten Datei
Wie im Beitrag „VBA_Methoden: Eine Datei öffnen“ erläutert, hast du z.B. eine weitere Datei manuell oder mit einem Makro geöffnet. Du hast deine Bearbeitungen vorgenommen und willst die Datei nun über dein Makro wieder schließen. Eine Speicherung siehst du ebenfalls vor.
Sub SchließenDatei4()
Workbooks(„VBA_Datenblatt.xlsx“).Save
Workbooks(„VBA_Datenblatt.xlsx“).Close
End Sub
oder so:
Sub SchließenDatei5()
Workbooks(„VBA_Datenblatt.xlsx“).Close SaveChanges:=True
End Sub
Öffnen, Bearbeiten, Speichern und Schließen einer zusätzlichen Datei
Jetzt willst du die Vorgänge vom Öffnen bis zum Schließen einer zusätzlichen Datei mit einem Makro ausführen lassen.
Im Arbeitsblatt „Tabelle1“ der Zusatzdatei soll in Zelle B10 der Text „Bearbeitung ist erfolgt“ eingetragen werden. Die Bearbeitung wird mit einer MsgBox bestätigt.
Sub SchließenDatei6()
Workbooks.Open Filename:=“C:\Excel\VBA_Datenblatt.xlsx“
Worksheets(„Tabelle1“).Range(„B10″)=“Bearbeitung ist erfolgt“
MsgBox(„Eintrag erfolgt“)
Workbooks(„VBA_Datenblatt.xlsx“).Save
Workbooks(„VBA_Datenblatt.xlsx“).Close
End Sub
Schließen einer Datei nach dem Speichern
Die Zusatzdatei soll sofort geschlossen werden, wenn gespeichert wurde.
Sub SchließenDatei7()
If Workbooks(„VBA_Datenblatt.xlsx“).Saved=True Then
Workbooks(„VBA_Datenblatt.xlsx“).Close
Else
MsgBox(„Datei ist nicht gespeichert“)
End If
End Sub
Wurde nicht gespeichert, kann in diesem Fall auch nicht geschlossen werden. Du erhälst deshalb die Mitteilung „Datei ist nicht gespeichert“ mittels einer MsgBox.
Entdecke mehr von Clevercalcul
Subscribe to get the latest posts sent to your email.
nein.
du hast „schießen“ statt „schließen“ geschrieben 🙂
OK, ich gebe mich geschlagen.
„Öffnen, Bearbeiten, Speichern und Schießen einer zusätzlichen Datei“
Nein, ich möchte nicht schießen 🙂
Danke für Deinen Kommentar. Wenn du meinst, dass diese Variante im Beitrag fehlt, ja. Aber viele andere fehlen auch noch.