Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Über VBA Button Datei schließen, speiche

Über VBA Button Datei schließen, speiche
27.03.2020 10:24:58
Jö_Ma
Hallo werte Excel Freunde,
ich habe da mal wieder eine Frage. Ich möchte über einen Button die gesamte Exceldatei schließen und speichern.
Dies gleiche soll auch über das kleine "X" rechts oben funktionieren. Kann mir da eine helfen?
Danke
Jörg
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über VBA Button Datei schließen, speiche
27.03.2020 10:29:07
Bernd
Servus Jörg,
diesen Code direkt unter "Diese Arbeitsmappe"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
Diesen hier für den Button in ein neues Modul

Sub t()
ThisWorkbook.Close True
End Sub
Grüße, Bernd
Anzeige
AW: Über VBA Button Datei schließen, speiche
27.03.2020 10:38:38
Jö_Ma
Danke Bernd,
werde es gleich versuchen.
Gruß Jörg
AW: Über VBA Button Datei schließen, speiche
27.03.2020 11:04:10
Jö_Ma
Hallo Bernd,
wie kann ich das schließen "X" rechts oben programmieren? Und warum bleibt eine leer Excelmaske stehen.
Danke Jörg
AW: Über VBA Button Datei schließen, speiche
01.04.2020 08:12:40
Bernd
Servus Jörg,
die "Programmierung" des Schließen Buttons ist über das Workbook_BeforeClose Makro abgedeckt.
Wenn Excel komplett schließen soll dann kann man noch ein "Application.Quit" vor "End Sub" einbauen.
Allerdings sollte man vorher noch prüfen, ob weiter Arbeitsmappen geöffnet sind. Mit Application.Quit werden ALLE Excelinstanzen geschlossen!
Würde über eine IF-Verzweigung etwa so aussehen (bitte den genauen Code googlen):

If Workbooks.Count=1 Then
Application.Quit
End If
Grüße, Bernd
Anzeige
neue Frage aber...
27.03.2020 10:32:10
Werner
Hallo,
...kein Feedback zu einer "alten" Frage.
Danke auch.
Gruß Werner
AW: neue Frage aber...
27.03.2020 10:40:03
Jö_Ma
Hallo Werner,
ich habe immer versucht zu Antworten. Wenn ich es einmal vergessen habe tut es mir leid.
Gruß Jörg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

VBA Button zum Speichern und Schließen von Excel-Dateien


Schritt-für-Schritt-Anleitung

Um einen Button in VBA zu erstellen, der eine Excel-Datei speichert und schließt, folge diesen Schritten:

  1. Entwicklertools aktivieren: Stelle sicher, dass das Tab "Entwicklertools" in Excel aktiviert ist. Dies kannst du in den Excel-Optionen unter "Menüband anpassen" tun.

  2. Button einfügen:

    • Gehe zu "Entwicklertools".
    • Klicke auf "Einfügen" und wähle "Button (Formularsteuerung)" aus.
    • Ziehe den Button auf das Arbeitsblatt.
  3. VBA-Code hinzufügen:

    • Klicke mit der rechten Maustaste auf den Button und wähle "Makro zuweisen".
    • Wähle "Neues Makro" aus.
    • Im VBA-Editor füge den folgenden Code ein:
    Sub SpeichernUndSchließen()
       ThisWorkbook.Save
       ThisWorkbook.Close
    End Sub
  4. Schließen über "X": Um die Excel-Datei über das "X" rechts oben zu schließen und gleichzeitig zu speichern, füge den folgenden Code in das Modul "Diese Arbeitsmappe" ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       ThisWorkbook.Save
    End Sub
  5. Funktion testen: Klicke auf den Button, um zu überprüfen, ob die Datei gespeichert und geschlossen wird.


Häufige Fehler und Lösungen

  • Fehler: "Makro kann nicht ausgeführt werden": Stelle sicher, dass die Makros in deinen Excel-Optionen aktiviert sind.
  • Fehler: Excel schließt nicht: Überprüfe, ob der Code im Workbook_BeforeClose korrekt implementiert ist.
  • Problem mit leerer Excelmaske: Wenn beim Schließen eine leere Excelmaske bleibt, stelle sicher, dass der Code Application.Quit korrekt eingebaut ist, falls du alle Excel-Instanzen schließen möchtest.

Alternative Methoden

Anstelle eines Buttons kannst du auch eine Tastenkombination erstellen, um die Excel-Datei zu speichern und zu schließen. Gehe dazu zu "Entwicklertools" > "Makros" und wähle dein Makro aus. Klicke auf "Optionen" und weise eine Tastenkombination zu.


Praktische Beispiele

Angenommen, du möchtest eine Excel-Datei mit dem Namen "Bericht.xlsx" speichern und schließen. Füge den folgenden VBA-Code in ein Modul ein:

Sub BerichtSpeichernUndSchließen()
    ThisWorkbook.SaveAs "C:\Pfad\zu\deinem\Bericht.xlsx"
    ThisWorkbook.Close
End Sub

Dieser Code speichert die Datei unter dem angegebenen Pfad und schließt sie anschließend.


Tipps für Profis

  • Verwende On Error Resume Next: Wenn du mehrere Arbeitsmappen verwaltest, kannst du Fehler abfangen, ohne dass dein Makro abbricht.
On Error Resume Next
If Workbooks.Count = 1 Then
    Application.Quit
End If
On Error GoTo 0
  • Verwende MsgBox für Bestätigungen: Informiere den Benutzer über den Speichervorgang:
MsgBox "Die Datei wurde erfolgreich gespeichert und geschlossen.", vbInformation

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Datei ohne Bestätigung speichern?
Nutze den Befehl ThisWorkbook.Save im Workbook_BeforeClose-Ereignis, um das Speichern ohne Benutzerinteraktion durchzuführen.

2. Kann ich das Schließen von Excel über ein Makro anpassen?
Ja, du kannst das Workbook_BeforeClose-Ereignis anpassen, um spezifische Bedingungen für das Schließen zu definieren.

3. Was passiert, wenn ich Änderungen nicht speichere?
Wenn du das Workbook_BeforeClose-Ereignis nicht implementierst oder den Speichern-Befehl weglässt, wird Excel dich fragen, ob du die Änderungen speichern möchtest, bevor es schließt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige