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

Forumthread: Ohne Nachfrage speichern und schließen

Ohne Nachfrage speichern und schließen
06.10.2020 15:13:28
hans
Hallo,
habe folgenden Code in meiner Datei:
Private Sub Workbook_Open()
If MsgBox("Dokument bearbeiten?", vbYesNo + vbDefaultButton1) = vbYes Then
ThisWorkbook.SaveAs "U:\USER\Automotive\Abrufe\Automobilaufstellung " & Format$(Date, " _
yyyy.mm.dd") & ".xls"
End If
End Sub
Private Sub Workbook_BeforeClose(cancel As Boolean)
If MsgBox("?nderungen in Original speichern?", vbYesNo + vbDefaultButton1) = vbYes Then
Application.DisplayAlerts = False
ThisWorkbook.Save
ThisWorkbook.SaveAs "U:\USER\Automotive\Abrufe\Automobilaufstellung" & ".xlsm"
Application.DisplayAlerts = True
Else
Application.Quit
End If
End Sub
Nun passiert es manchmal (komischerweise nicht immer) das er mich beim Schließen trotzdem fragt ob gespeichert werden soll. Wie kann ich das Vermeiden?
Danke schonmal für die Hilfe
Gruß Hans
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ohne Nachfrage speichern und schließen
06.10.2020 15:26:27
ChrisL
Hi Hans
Ersetze mal
Application.Quit
durch
ThisWorkbook.Saved = True
cu
Chris
AW: Ohne Nachfrage speichern und schließen
06.10.2020 15:27:22
Nepumuk
Hallo Hans,
teste mal:
Option Explicit

Private Sub Workbook_Open()
    If MsgBox("Dokument bearbeiten?", vbYesNo + vbDefaultButton1) = vbYes Then
        
        SaveAs Filename:="U:\USER\Automotive\Abrufe\Automobilaufstellung " & _
            Format$(Date, "yyyy.mm.dd") & ".xls", FileFormat:=xlExcel8
        
    End If
End Sub

Private Sub Workbook_BeforeClose(cancel As Boolean)
    If MsgBox("Änderungen in Original speichern?", vbYesNo) = vbYes Then
        Application.DisplayAlerts = False
        Save
        SaveAs Filename:="U:\USER\Automotive\Abrufe\Automobilaufstellung.xlsm", _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled
        Application.DisplayAlerts = True
    Else
        Saved = True
        Application.Quit
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Ohne Nachfrage speichern und schließen
06.10.2020 15:54:48
hans
Danke funzt!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Speichern und Schließen ohne Nachfrage


Schritt-für-Schritt-Anleitung

Um deine Excel-Datei mit VBA zu speichern und zu schließen, ohne dass eine Nachfrage erscheint, kannst du folgenden Code verwenden:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem du ALT + F11 drückst.
  2. Füge den folgenden Code in das ThisWorkbook-Modul ein:
Private Sub Workbook_Open()
    If MsgBox("Dokument bearbeiten?", vbYesNo + vbDefaultButton1) = vbYes Then
        ThisWorkbook.SaveAs "U:\USER\Automotive\Abrufe\Automobilaufstellung " & Format$(Date, "yyyy.mm.dd") & ".xls"
    End If
End Sub

Private Sub Workbook_BeforeClose(cancel As Boolean)
    If MsgBox("Änderungen in Original speichern?", vbYesNo) = vbYes Then
        Application.DisplayAlerts = False
        ThisWorkbook.Save
        ThisWorkbook.SaveAs "U:\USER\Automotive\Abrufe\Automobilaufstellung.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
        Application.DisplayAlerts = True
    Else
        ThisWorkbook.Saved = True
    End If
End Sub

Mit diesem Code wirst du nicht mehr gefragt, ob du die Datei speichern möchtest, wenn du sie schließt.


Häufige Fehler und Lösungen

  • Fehler: Du wirst trotzdem gefragt, ob du die Änderungen speichern möchtest.
    Lösung: Stelle sicher, dass die Zeile ThisWorkbook.Saved = True korrekt platziert ist, um Excel mitzuteilen, dass die Datei bereits gespeichert wurde.

  • Fehler: Der Code funktioniert nicht wie erwartet.
    Lösung: Überprüfe, ob du die richtige Excel-Version verwendest und dass die Datei nicht schreibgeschützt ist.


Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, kannst du die folgenden Ansätze verwenden:

  • Direktes Speichern: Du kannst die Save-Funktion verwenden, um die Datei direkt zu speichern, ohne nachzufragen, indem du die Application.DisplayAlerts-Eigenschaft auf False setzt.

  • Makros: Erstelle ein Makro, das die Datei speichert und schließt. So kannst du die Funktionalität einfach steuern.

Beispiel für ein einfaches Makro:

Sub SpeichernUndSchließen()
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    ThisWorkbook.Close
    Application.DisplayAlerts = True
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungen, wie du die oben genannten Methoden verwenden kannst:

  1. Speichern und Schließen ohne Rückfrage: Nutze das Makro SpeichernUndSchließen, um die Datei zu speichern und direkt zu schließen, ohne nachzufragen, ob du speichern möchtest.

  2. Automatisches Speichern beim Öffnen: Der Workbook_Open-Code speichert die Datei automatisch beim Öffnen, wenn der Benutzer zustimmt.


Tipps für Profis

  • Verwende Kommentare: Füge Kommentare zu deinem VBA-Code hinzu, um den Code verständlicher zu machen und zukünftige Änderungen zu erleichtern.
  • Backup-Strategie: Implementiere eine Backup-Strategie in deinem VBA-Code, um Datenverlust zu vermeiden.
  • Testen: Teste deinen Code gründlich, um sicherzustellen, dass er unter verschiedenen Bedingungen funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich die Anzeige von Warnmeldungen dauerhaft deaktivieren?
Du kannst Application.DisplayAlerts = False verwenden, um Warnmeldungen zu unterdrücken. Vergiss nicht, sie wieder auf True zu setzen.

2. Funktioniert dieser Code in Excel 2016?
Ja, der Code ist kompatibel mit Excel-Versionen ab 2010. Stelle sicher, dass du die richtigen VBA-Einstellungen hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige