VBA aktive Datei schließen und wieder öffnen
Schritt-für-Schritt-Anleitung
Um eine Excel-Datei mit VBA zu schließen und sie anschließend wieder zu öffnen, kannst du folgende Schritte befolgen:
-
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor zu starten.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.
-
Schreibe den VBA-Code: Füge den folgenden Code in das Modul ein:
Sub DateiSchliessenUndOeffnen()
Application.DisplayAlerts = False ' Deaktiviere Warnmeldungen
ThisWorkbook.Close savechanges:=False ' Schließe die aktive Datei ohne zu speichern
Application.DisplayAlerts = True ' Aktiviere Warnmeldungen wieder
Workbooks.Open Filename:="C:\Pfad\Zu\DeinerDatei.xlsx" ' Öffne die Datei erneut
End Sub
-
Ändere den Dateipfad: Stelle sicher, dass du den Pfad zu deiner Datei anpasst.
-
Füge einen Button hinzu: Gehe zurück zu deiner Excel-Oberfläche, füge einen Button hinzu und verlinke ihn mit der DateiSchliessenUndOeffnen
-Prozedur.
Jetzt kannst du die Excel-Datei schließen und sofort wieder öffnen, indem du auf den Button klickst.
Häufige Fehler und Lösungen
-
Fehler: „Die Datei kann nicht gefunden werden“
- Lösung: Überprüfe den Dateipfad im Code. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.
-
Fehler: „Möchten Sie die Änderungen speichern?“
- Lösung: Stelle sicher, dass
savechanges:=False
korrekt gesetzt ist, um die Datei ohne Speichern zu schließen.
-
Fehler: „Die Prozedur Dummy ist nicht definiert“
- Lösung: Stelle sicher, dass die Dummy-Prozedur im gleichen Modul wie die Hauptprozedur definiert ist, falls du sie verwendest.
Alternative Methoden
Eine andere Möglichkeit, eine Excel-Datei zu schließen, besteht darin, die OnTime
-Methode zu verwenden. Hier ist ein Beispiel:
Public Sub Schaltfläche1_Klicken()
Call Application.OnTime(EarliestTime:=Now, Procedure:="Dummy", Schedule:=True)
ThisWorkbook.Close SaveChanges:=False
End Sub
Public Sub Dummy()
End Sub
Mit dieser Methode kannst du die Datei programmgesteuert schließen, ohne dass der Benutzer eine Warnung erhält.
Praktische Beispiele
Angenommen, du hast ein komplexes Arbeitsblatt und möchtest sicherstellen, dass alles nach dem Schließen und Öffnen wieder in den Ursprungszustand versetzt wird. Hier ist ein Beispiel für einen Button, der dies bewerkstelligt:
- Erstelle einen Button und verlinke ihn mit der
DateiSchliessenUndOeffnen
-Prozedur.
- Füge eine weitere Prozedur hinzu, um spezifische Formeln oder Grafiken zu laden, falls erforderlich.
Dies könnte so aussehen:
Sub DatenZuruecksetzen()
' Hier spezifische Anweisungen einfügen, um Daten zurückzusetzen
End Sub
Tipps für Profis
-
Verwende Application.ScreenUpdating = False
: Dies kann helfen, die Leistung zu verbessern, während du die Datei schließt und öffnest.
-
Auf Fehlermeldungen achten: Wenn du mit Application.DisplayAlerts = False
arbeitest, kann es sein, dass wichtige Warnungen unterdrückt werden. Überlege, ob du das vorübergehend deaktivierst.
-
Regelmäßige Backups: Stelle sicher, dass du regelmäßige Backups deiner Datei machst, insbesondere wenn du häufig Änderungen vornimmst.
FAQ: Häufige Fragen
1. Kann ich eine Datei schließen, ohne die Änderungen zu speichern?
Ja, indem du den Befehl ThisWorkbook.Close savechanges:=False
verwendest, schließt du die Datei ohne Speicherung.
2. Wie kann ich eine bestimmte Datei öffnen, nachdem ich sie geschlossen habe?
Du musst den Dateipfad in der Workbooks.Open
-Methode angeben, wie im Beispiel oben gezeigt.
3. Funktioniert das auch in neueren Excel-Versionen?
Ja, der VBA-Code funktioniert sowohl in Excel 2003 als auch in neueren Versionen wie Excel 2016 oder Excel 365. Achte jedoch darauf, dass der Code auf die spezifische Version angepasst sein könnte.