Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dialog zum Speichern von Änderungen unterdrücken

Forumthread: Dialog zum Speichern von Änderungen unterdrücken

Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 15:29:08
Änderungen
Ich öffne über ein Userform mittels einem CommandButton eine weitere Excel-Datei. Dabei werden Daten in der zweiten Excel-Datei verändert. Wie kann ich die Abfrage "Möchten Sie die vorgenommen Änderungen speichern" beim Schließen unterdrücken? Das Unterdrücken der Speicherung darf nur erfolgen, wenn die weitere Excel-Datei mit dem Userform geöffnet wurde. Also nicht wenn die Excel-Datei direkt geöffnet wird.
Lässt sich der Befehl zum Öffnen der Datei (Workbooks.Open Filename:="xyz.xls") mit der Anweisung SaveChanges:=False irgendwie verketten? ;-)
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 15:47:21
Änderungen
Hallo Oliver,
würde ich so machen:
Public Sub Beispiel()
    Dim objWorkbook As Workbook
    Set objWorkbook = Workbooks.Open(Filename:="xyz.xls")
    
    'dein Code
    
    objWorkbook.Saved = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 15:55:56
Änderungen
Hallo Nepumuk,
vielen Dank für Deine rasche Antwort. Muss ich den Code in ein Modul oder beim CommandButton einfügen? Und wie triggere Sub_Beispiel an?
Derzeit sieht mein Code folgendermaßen aus:
Private Sub CommandButton1_Click()
Rem Test
Workbooks.Open Filename:="xyz.xls"
Sheets("Präsentation").Select
Application.WindowState = xlNormal
Application.DisplayFullScreen = True
Range("A1").Select
End Sub

Anzeige
AW: Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 16:09:56
Änderungen
Hallo Oliver,
einfach so:
Private Sub CommandButton1_Click()
    Rem Test
    Dim objWorkbook As Workbook
    Set objWorkbook = Workbooks.Open(Filename:="xyz.xls")
    Sheets("Präsentation").Select
    Application.WindowState = xlNormal
    Application.DisplayFullScreen = True
    Range("A1").Select
    objWorkbook.Saved = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 16:33:24
Änderungen
Läuft, vielen Dank! Werden Änderungen durch objWorkbook.Saved gespeichert oder verworfen?
AW: Dialog zum Speichern von Änderungen unterdrücken
13.07.2018 16:45:35
Änderungen
Hallo Oliver,
die werden verworfen.
Gruß
Nepumuk
;
Anzeige

Infobox / Tutorial

Dialog zum Speichern von Änderungen unterdrücken in Excel


Schritt-für-Schritt-Anleitung

Um den Dialog zum Speichern von Änderungen beim Schließen einer Excel-Datei zu unterdrücken, kannst Du folgenden VBA-Code verwenden. Dieser Code öffnet eine Excel-Datei über ein Userform und sorgt dafür, dass beim Schließen der Datei keine Abfrage erscheint, ob die Änderungen gespeichert werden sollen. Führe die folgenden Schritte aus:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeineDateiName)" klickst und dann "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Public Sub Beispiel()
       Dim objWorkbook As Workbook
       Set objWorkbook = Workbooks.Open(Filename:="xyz.xls")
       ' Dein Code hier
       objWorkbook.Saved = True
    End Sub
  4. Füge den Code für den CommandButton in das Userform ein:

    Private Sub CommandButton1_Click()
       Dim objWorkbook As Workbook
       Set objWorkbook = Workbooks.Open(Filename:="xyz.xls")
       Sheets("Präsentation").Select
       Application.WindowState = xlNormal
       Application.DisplayFullScreen = True
       Range("A1").Select
       objWorkbook.Saved = True
    End Sub
  5. Schließe den VBA-Editor und teste das Userform.


Häufige Fehler und Lösungen

  • Fehler: Der Dialog zum Speichern erscheint trotzdem.

    • Lösung: Stelle sicher, dass Du objWorkbook.Saved = True korrekt gesetzt hast, kurz bevor die Datei geschlossen wird. Dies signalisiert Excel, dass keine Änderungen gespeichert werden müssen.
  • Fehler: Der Code funktioniert nicht, wenn die Datei direkt geöffnet wird.

    • Lösung: Der Code ist so strukturiert, dass er nur beim Öffnen über das Userform funktioniert. Teste die Funktionalität, indem Du die Datei über das Userform öffnest.

Alternative Methoden

Wenn Du eine andere Methode zum Unterdrücken des Speicherdialogs ausprobieren möchtest, kannst Du Application.DisplayAlerts verwenden:

Application.DisplayAlerts = False
Workbooks.Open Filename:="xyz.xls"
Application.DisplayAlerts = True

Diese Methode deaktiviert alle Warnmeldungen für die Dauer des Befehls, was jedoch zu unerwarteten Ergebnissen führen kann, wenn Du nicht vorsichtig bist.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du den Dialog zum Speichern unterdrücken kannst:

  • Öffnen einer Datei mit Benutzerinteraktion:

    Private Sub CommandButton2_Click()
        Dim objWorkbook As Workbook
        Set objWorkbook = Workbooks.Open(Filename:="xyz.xls")
        ' Deine Logik hier
        objWorkbook.Saved = True
    End Sub

In diesem Beispiel wird die Datei "xyz.xls" geöffnet, und der Speicherdialog wird unterdrückt, sobald das Userform benutzt wird.


Tipps für Profis

  • Achte darauf, dass Du den objWorkbook.Saved Befehl immer vor dem Schließen der Datei ausführst, um sicherzustellen, dass Excel keine Änderungen speichert, die Du nicht behalten möchtest.
  • Verwende die Application.DisplayAlerts Eigenschaft vorsichtig, da sie alle Warnmeldungen unterdrückt und zu unerwarteten Situationen führen kann, wenn Du nicht aufpasst.
  • Teste Deinen Code gründlich, um sicherzustellen, dass er unter verschiedenen Bedingungen stabil läuft.

FAQ: Häufige Fragen

1. Werden Änderungen durch objWorkbook.Saved gespeichert oder verworfen?
Die Änderungen werden verworfen. Durch das Setzen von objWorkbook.Saved = True signalisiert man Excel, dass keine Änderungen vorgenommen wurden.

2. Wo sollte ich den Code einfügen?
Der Code sollte in ein Modul eingefügt werden. Wenn Du ein Userform verwendest, kannst Du den Code direkt im CommandButton_Click Event einfügen.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

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