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

Forumthread: Workbook schließen ohne Rückfrage

Workbook schließen ohne Rückfrage
Dietmar
Guten Morgen zusammen,
ich möchte gerne in der der Tabelle 1 zwei Optionsfelder bedienen, die beide auf Range("N3") verlinken. Wenn in N3 eine "1" steht und anschließend Excel geschlossen wird, soll das Workbook PLUS Excel selbst ohne Rückfrage geschlossen und unter einem vorgegebenem Namen geschlossen werden.
Der Code funktioniert zwar, jedoch noch nicht so wie ich es mir vorstelle:
a) Wenn ich auf >Datei >schließen gehe funktioniert es. Die Excel-Anwendung bleibt dann aber geöffnet.
b) Ich möchte aber auch erreichen, dass die Arbeitsmappe UND die gesamte Excel-Anwendung OHNE Rückfrage geschlossen werden kann. Also wenn ich auf das "Schließen-X" klicke. Dabei gehe ich in diesem Fall davon aus, dass nur die eine Arbeitsmappe geöffnet war.
Der BeforeClose-Befehl wird dann zwar ohne Rückfrage ausgeführt, jedoch erscheint dann doch noch eine Rückfrage.
Mit >Application.Quit Jemand eine Idee?
Vielen Dank.
Dietmar aus Aachen
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
If Worksheets("Tabelle1").Range("N3").Value = 1 Then
ActiveWorkbook.SaveAs Filename:="C:\Eigene Dateien\Test.xls"
Application.DisplayAlerts = True
Else
End If
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
AW: Workbook schließen ohne Rückfrage
11.06.2010 11:40:54
Ralf_P
Hallo Dietmar,
so sollte es gehen...
If Workbooks.Count 1 Then
ActiveWorkbook.Close
Else
Application.Quit
End If
VG, Ralf
Insgesamt schon ganz gut ... aber ...
11.06.2010 12:37:05
Dietmar
Hallo Ralf,
vielen Dank!
Habe den Code jetzt so umgebastelt. Mit Count kam ich nicht klar, weil die Ausführung ja in Abhängigkeit von Zelle N3 geschehen sollte. Wenn dort "1", dann ohne Nachfrage speichern und schließen, wenn etwas anderes dann mit Nachfrage. ob ... mit der Möglichkeit es selbst zu entscheiden.
Funktioniert jetzt soweit.
(!) Nur dass Excel selbst immer noch gesondert geschlossen werden muss; es bleibt trotz Application.Quit geöffnet. Wenn die "1" in N3 steht sollte Excel eigentlich auch nach dem automatischen Speichern sofort geschlossen werden.
VG
Dietmar aus Aachen
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Worksheets("Tabelle1").Range("N3").Value = 1 Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="C:\Test001.xls"
ActiveWorkbook.Close
Application.Quit
Application.DisplayAlerts = True
Else
'Application.Quit
End If
End Sub

Anzeige
AW: Insgesamt schon ganz gut ... aber ...
11.06.2010 13:57:54
Ralf_P
Hallo,
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Worksheets("Tabelle1").Range("N3").Value = 1 Then
Application.DisplayAlerts = False
ThisWorkbook.Save
ThisWorkbook.SaveAs Filename:="C:\Test001.xls"
Application.DisplayAlerts = True
Application.Quit
End If
End Sub
Count sollte nur eine Absicherung sein, falls noch weitere Tabellen geöffnet sind.
D. h. wenn .count 1 nur die aktive Mappe schließen, aber nicht die Excel-Application.
VG, Ralf
Anzeige
Gute Idee, hatte ich falsch gedeutet ...
11.06.2010 14:36:35
Dietmar
Hallo Ralf,
danke, das hatte ich so gar nicht verstanden, aber jetzt wo du mich mit der Nase darauf gestuppst hast erkenne ich es auch.
Wie kann der Countbefehl denn in meinen Code eingebaut werden. Zur Zeit bleibt Excel immer offen, trotz Application.Quit.
Vielen Dank!
Gruß
Dietmar aus Aachen
Anzeige
AW: Gute Idee, hatte ich falsch gedeutet ...
17.06.2010 17:37:20
Schmausi
vielleich kann ich helfen
Sub Auto_Close()
If Application.Workbooks.Count > 1 Then
Calculate
ActiveWorkbook.Save
ActiveWorkbook.Close
Exit Sub
ElseIf Application.Workbooks.Count = 1 Then
Calculate
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.Quit
End If
End Sub
Gruß vom Schmausi
Anzeige
Wow!
17.06.2010 21:41:53
Dietmar
Hallo Schmausi,
das sieht ja toll aus und zudem noch vollkommen logisch. Teste es morgen und melde mich dann.
Viele Grüße
Dietmar aus Aachen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Workbook ohne Rückfrage schließen


Schritt-für-Schritt-Anleitung

Um deine Excel-Arbeitsmappe zu schließen, ohne eine Rückfrage zu erhalten, kannst du folgenden VBA-Code verwenden. Dieser Code speichert die Datei unter einem vorgegebenen Namen und schließt sowohl die Arbeitsmappe als auch die Excel-Anwendung, wenn eine bestimmte Bedingung erfüllt ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge in das richtige Modul den folgenden Code ein:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.DisplayAlerts = False
    If Worksheets("Tabelle1").Range("N3").Value = 1 Then
        ThisWorkbook.SaveAs Filename:="C:\Test001.xls"
        Application.Quit
    End If
    Application.DisplayAlerts = True
End Sub
  1. Schließe den VBA-Editor und teste den Code, indem du die Arbeitsmappe schließt.

Häufige Fehler und Lösungen

  • Fehler: Excel bleibt geöffnet, nachdem die Arbeitsmappe geschlossen wurde.

    • Lösung: Stelle sicher, dass Application.Quit im Code enthalten ist und dass keine weiteren offenen Arbeitsmappen vorhanden sind.
  • Fehler: Rückfragen erscheinen beim Schließen.

    • Lösung: Achte darauf, dass Application.DisplayAlerts = False gesetzt ist, bevor du die Arbeitsmappe schließt.

Alternative Methoden

Eine alternative Methode, um eine Arbeitsmappe ohne Rückfragen zu schließen, ist die Verwendung einer separaten Subroutine:

Sub Auto_Close()
    If Application.Workbooks.Count = 1 Then
        ActiveWorkbook.Save
        ActiveWorkbook.Close
        Application.Quit
    Else
        ActiveWorkbook.Close
    End If
End Sub

Diese Subroutine prüft, ob mehr als eine Arbeitsmappe geöffnet ist und schließt entsprechend.


Praktische Beispiele

Ein Beispiel für den Einsatz des Codes könnte sein, wenn du eine Datei mit bestimmten Daten automatisiert speichern und schließen möchtest. Wenn in Zelle N3 der Wert 1 steht, wird die Datei gespeichert und Excel wird geschlossen. Andernfalls bleibt Excel geöffnet.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um die Benutzeroberfläche zu vereinfachen und Rückfragen zu vermeiden.
  • Stelle sicher, dass der Pfad, unter dem die Datei gespeichert wird, existiert, um Laufzeitfehler zu vermeiden.
  • Teste den Code gründlich, um sicherzustellen, dass er in verschiedenen Szenarien funktioniert, insbesondere wenn mehrere Arbeitsmappen geöffnet sind.

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um mehrere Dateien gleichzeitig zu schließen?
Ja, du kannst eine Schleife durch Workbooks verwenden, um mehrere Arbeitsmappen zu schließen, je nachdem, wie viele geöffnet sind.

2. Wie verhindere ich, dass Excel nach dem Speichern und Schließen erneut geöffnet wird?
Verwende Application.Quit im richtigen Kontext, um sicherzustellen, dass die Excel-Anwendung vollständig geschlossen wird.

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