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

Excel per Makro schliessen ohne Speicherung

Forumthread: Excel per Makro schliessen ohne Speicherung

Excel per Makro schliessen ohne Speicherung
25.10.2002 13:51:59
Chris
Hallo

Möchte Excel per Makro schliessen, jedoch die Datei nicht speichern und auch die Meldung nach der Speicherung nicht erhalten. Wenn jedoch zufällig noch eine andere Excel Datei geöffnet ist, die nichts mit der Datei zu tun hat, soll normal die Meldung kommen "Beenden/Speichern ja/nein".

Grundsätzlich geht das ja mit "Application.Quit".

Die Speichermeldung liesse sich vermutlich mit "Application.DisplayAlerts = False" umgehen. Habe aber gelesen, dass die Abschaltung der Bildschirmausgaben über die Laufzeit der Prozedur hinaus gültig ist, was ich auf keinen Fall will. Zudem bestünde wie gesagt auch das Problem, im Falle dass noch eine unabhängige Datei offen ist.

Um es noch genauer zu sagen. Habe 3 Exceldateien gleichzeitig offen. Das Makro wird aus Datei1.xls heraus gestartet.

Windows("Datei2.xls").Close False
Windows("Datei3.xls").Close False
Application.Quit

'Windows("Datei1.xls").Close False
Die letzte Zeile nützt natürlich nichts, da Excel ja bereits geschlossen ist.


Gibt es dafür eine Lösung?

Herzlichen Dank

Gruss
Chris

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel per Makro schliessen ohne Speicherung
25.10.2002 14:33:27
Dirk G
Versuch es mal mit Workbooks("Name.XLS").Close SaveChanges:=False
Re: Excel per Makro schliessen ohne Speicherung
25.10.2002 14:53:25
Hajo_Zi
Hallo Dirk

das Problem ist das der Befehl Application.Quit der danach steht nicht mehr ausgeführt wird.

Gruß Hajo

Re: Excel per Makro schliessen ohne Speicherung
25.10.2002 15:09:01
Nepumuk
Hallo Chris
gib bei allen drei Mappen in das Klassenmodul "DieseArbeitsmappe" folgenden Code ein:

und setzte den Befehl "Application.Quit" hinter den "Close" - Befehl der dritten Mappe.

Gruß
Nepumuk

Anzeige
noch jemand eine Idee?
25.10.2002 15:09:53
Chris
Hallo zusammen

Hajo trifft genau den Punkt. Wenn die Datei aus der der Schliessvorgang gestartet wird schon geschlossen ist, lässt sich anschliessend Excel nicht mehr schliessen, da ja dann das Makro bereits geschlossen ist.

Ziemlich verzwickt. Ich versuchs jetzt mal mit laut schreien!!!

Danke sowieso.
Gruss
Chris

Anzeige
Re: noch jemand eine Idee?
25.10.2002 15:20:27
Nepumuk
Hallo Chris
jetzt hab ichs noch nicht ganz verstanden.
Willst du Excel komplett beenden auch wenn eine vierte Mappe geöffnet ist? Dann kanst du den dritten "Close" - Befehl einfach weglassen.

Wenn nicht, dann hilft:

If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close

Gruß
Nepumuk

Anzeige
Re: Excel per Makro schliessen ohne Speicherung
25.10.2002 15:29:31
Chris
Hallo Nepumuk

Hab mich schon gefreut, denn grundsätzlich funktioniert es.

Wenn aber wie beschrieben zufällig noch eine andere Excel Datei offen ist, kommt ein ziemlich böser Absturz:

The instruction at "0x3006ad15" reference memory at "0x0083f992". The memory could not be "read".

Click on OK to teterminate the application.
Click on CANCEL to debug the application.


Hmmm... vielleicht noch eine Idee oder hab ich gar was falsch gemacht?

Gruss
Chris

Anzeige
Re: noch jemand eine Idee ?
25.10.2002 15:33:10
Chris
Hallo Nepumuk

Glaube jetzt kommen wir der Sach näher. Versuchs jetzt mal mit dem Workbookcount.

Thanx
Chris

Re: Excel per Makro schliessen ohne Speicherung
25.10.2002 15:39:14
Martin Beck
Hallo Chris,

warum klapperst Du nicht in einer for-each-Schleife alle Workbooks ab, prüfst mit If, ob der Name Datei1, Datei2 oder Datei3 ist und verfährts in Abhängigkeit vom Ergebnis so wie Nepumuk es vorgeschlagen hast oder "behandelst" die versehentlich offene Datei.

Gruß
Martin Beck

Anzeige
aller aller letztes mal... sorry jungs
25.10.2002 16:02:24
Chris
Hallo

Bins nochmal... vielen Dank an alle die sich gemeldet haben. Ist/war wirklich eine Hilfe. Bin mir auch bewusst, dass ich langsam tüchtig nerve, aber noch ein einziges Problem.

Hab das jetzt so gemacht:

Windows("Datei2.xls").Close False
Windows("Datei3.xls").Close False

If Workbooks.Count = 1 Then
Application.Quit
Else
Windows("Datei1.xls").Close False
End If


Funktioniert alles wunderbar, nur möchte ich im Falle von Application.Quit Excel ohne die Frage nach Speichern ja/nein beenden. Wenn ich speichern wollte, könnte ich die Datei vorher speichern und dann Application.Quit, aber ich will eben nicht speichern.

Gruss
Chris



Anzeige
Re: aller aller letztes mal... sorry jungs
25.10.2002 16:09:18
ANdreas
Hallo Chris,

setze vor den Quit-Befehl einfach:
ActiveWorkbook.Saved = True

Hoffe das hilft weiter,
Andreas

perfect
25.10.2002 16:13:20
Chris
Hallo Andreas

Genau wie du gesagt hast. Alles OK jetzt.

Danke
Chris

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel per Makro schließen ohne Speicherung


Schritt-für-Schritt-Anleitung

Um Excel per Makro zu schließen, ohne die Datei zu speichern oder eine Speicherabfrage zu erhalten, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf „VBAProject (deinWorkbookName)“, wähle „Einfügen“ und dann „Modul“.
  3. Schreibe den folgenden Code:

    Sub ExcelSchliessenOhneSpeichern()
       Dim wb As Workbook
    
       ' Alle geöffneten Arbeitsmappen durchlaufen
       For Each wb In Application.Workbooks
           ' Überprüfen, ob die Arbeitsmappe nicht die aktuelle ist
           If wb.Name <> ThisWorkbook.Name Then
               wb.Close SaveChanges:=False ' Schließe ohne zu speichern
           End If
       Next wb
    
       ' Setze die Eigenschaft, um die Speicherabfrage zu vermeiden
       Application.DisplayAlerts = False
       Application.Quit ' Schließe Excel
       Application.DisplayAlerts = True
    End Sub
  4. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen und Excel zu schließen, ohne dass eine Speichermeldung erscheint.

Häufige Fehler und Lösungen

  • Problem: Excel lässt sich nicht schließen.

    • Lösung: Stelle sicher, dass du alle geöffneten Arbeitsmappen korrekt schließt und die DisplayAlerts-Eigenschaft auf False setzt.
  • Problem: Fehler beim Schließen, wenn noch andere Dateien geöffnet sind.

    • Lösung: Verwende eine Schleife, um alle Arbeitsmappen zu durchlaufen und nur die nicht benötigten zu schließen, wie im obigen Code gezeigt.

Alternative Methoden

  • Verwendung von ActiveWorkbook.Saved: Setze vor dem Application.Quit-Befehl die folgende Zeile ein:

    ActiveWorkbook.Saved = True

    Dies verhindert die Speichermeldung beim Schließen von Excel.

  • Direktes Schließen einer spezifischen Datei: Wenn du nur eine bestimmte Datei schließen möchtest, kannst du auch den folgenden Befehl verwenden:

    Workbooks("Dateiname.xlsx").Close SaveChanges:=False

Praktische Beispiele

  1. Schließe alle offenen Dateien:

    Sub AlleDateienSchliessen()
       Dim wb As Workbook
       For Each wb In Application.Workbooks
           wb.Close SaveChanges:=False
       Next wb
       Application.Quit
    End Sub
  2. Schließe nur bestimmte Dateien:

    Sub BestimmteDateienSchliessen()
       Dim wb As Workbook
       For Each wb In Application.Workbooks
           If wb.Name = "Datei1.xlsx" Or wb.Name = "Datei2.xlsx" Then
               wb.Close SaveChanges:=False
           End If
       Next wb
    End Sub

Tipps für Profis

  • Verwende On Error Resume Next: Um Laufzeitfehler zu vermeiden, wenn eine Datei nicht geöffnet ist, füge diese Zeile vor dem Schließen der Datei ein:

    On Error Resume Next
  • Automatisiere die Speicherung: Wenn du oft Dateien schließen musst, ohne sie zu speichern, erstelle ein Makro, das diesen Vorgang automatisiert. Teste dein Makro erst mit Kopien deiner Dateien, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich Excel ohne das Speichern schließen?
Du kannst Application.Quit verwenden, zusammen mit ActiveWorkbook.Saved = True, um die Speichermeldung zu umgehen.

2. Was mache ich, wenn Excel beim Schließen abstürzt?
Überprüfe deinen Code auf Fehler und stelle sicher, dass du alle Arbeitsmappen korrekt schließt, bevor du Excel beendest.

3. Gibt es eine Möglichkeit, Excel beim Schließen immer nach dem Speichern zu fragen?
Ja, kannst Application.DisplayAlerts = True setzen, bevor du die Arbeitsmappen schließt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige