VBA für Excel schliessen
#1
Liebe Exelisten,
"er hat sich bemüht,..." 
und ich habe im Internet nach geeigneten Makros gesucht. Gefunden z.B. diesen:
For Each wb In Application.Workbooks

        If wb.Path <> "" Then
            wb.Save
        End If

    Next wb

    Application.Quit
Workbooks("xxx.xlsm").Save
Workbooks("xxx.xlsm").Close SaveChanges:=True

End Sub
ABER DER FUNKTIONIERT NICHT!
Es erscheint (eigenartigerweise nicht immer) die Meldung:
"Dokument wird verwendet.
xxx.xlsm ist zum Bearbeiten durch xxx gesperrt."

Ich will mir es nicht zu einfach machen, habe schon viel herumgedoktert, weiss jetzt aber keinen anderen Rat, als mich an Euch zu wenden.
Danke vorab sagt Hagen

ergänzend: die Startdatei xxx.xlsm hat einen Buttom, mit dem das "Schliessmakro aufgerufen wird. Am allerliebsten hätte ich natürlich gerne eine Abfrage, ob jede geöffnete Datei gespeichert werden soll.
Antworten Top
#2
Mach es mal so:

Code:
Sub Test()
  Application.Quit
End Sub

Wenn Dateien nicht gespeichert sind fragt Excel von alleine, dafür braucht es keinen Code.

Andreas.
Antworten Top
#3
Hi
um festzustellen, ob ein Makro geeignet ist, muss man immer auch wissen, was das Makro genau machen soll.
es wäre also nett, wenn du uns sagst, was du erreichen willst.

Application.Quit schließt Excel sofort und damit alle noch geöffneten Dateien.
Damit sollte klar sein, dass dieser Befehl an dieser Stelle unsinn ist, sondern nach der Schleife zum Speichern der noch geöffneten Dateien ausgeführt werden muss.

die nächste Frage wäre:
wenn du sowieso schon alle Dateien speicherst, warum speicherst du die Datei "xxx" nochmal extra?
dann wäre noch die Frage, was mit den Dateien passieren soll, die keinen Pfad haben?
sollen die ungespeichert geschlossen werden?

wenn ja, probiers mal so:

PHP-Code:
dim wb as Workbook
for each wb in application.workbooks
   
if wb.Path <> "" then
        wb
.Save
   
else
        wb.saved = true
    end
if
next
Application
.Quit

dieser code speichert alle Dateien, die schon einen Speicherort haben
Bei Dateien, die neu erstellt wurden und noch keinen Speicherort haben, wird aber die Kennung auf "gespeichert" gesetzt, so das Excel glaubt, sie müssten nicht mehr gespeichert werden.
Damit gelten alle geöffneten Dateien als gespeichert und du kannst Excel komplett schließen, ohne dass du eine Rückfrage bekommst.

Gruß Daniel
Antworten Top
#4
Lieber Daniel,
ganz grossen Dank! ES HAT FUNKTIONIERT!
Ich weiss nur noch nicht genau, warum, aber damit beschäftige ich mich morgen.
Freue mich sehr, besonders dass ich diese Möglichkeit hier habe.
herzlichst Hagen
Antworten Top
#5
(19.03.2026, 15:09)slowboarder schrieb: Damit gelten alle geöffneten Dateien als gespeichert und du kannst Excel komplett schließen, ohne dass du eine Rückfrage bekommst.

Hallo Daniel,

ich habe irgendwie schon die ganze Woche bei mir auf der Arbeit ganz komischen eMail-Verkehr und so langsam frage ich mich ob ich mich vielleicht mal auf einen Hirntumor untersuchen lassen sollte... vielleicht kannst Du mir helfen.

Hagen hat doch geschrieben:
Am allerliebsten hätte ich natürlich gerne eine Abfrage, ob jede geöffnete Datei gespeichert werden soll.

Also zumindest lese ich das da am Ende in seinem Post. Du nicht? 

Okay, ich nehme jetzt einfach mal an Du hast einfach nicht bis zu Ende gelesen und irgendwo beim seinem Beispielcode aufgehört mit dem Lesen. Dann kann ich Deine Antwort verstehen, alles gut.

Das Hagen nun aber explizit Deine Lösung super findet, die meiner bescheidenen Meinung ja nun genau das Gegenteil macht wonach er gefragt hat, gibt mir echt zu denken. Sollte ich mal zum Arzt gehen?

Andreas.
Antworten Top
#6
solltest du diese Frage nicht besser Hagen stellen?
Er muss ja besser wissen, warum er einen Code gut findet, der etwas anderes macht als er beschrieben hat.
Ich bin kein Telepath und kann nicht wissen, was Hagen so denkt.
Antworten Top
#7
(20.03.2026, 10:15)Andreas Killer schrieb: Das Hagen nun aber explizit Deine Lösung super findet, die meiner bescheidenen Meinung ja nun genau das Gegenteil macht wonach er gefragt hat, gibt mir echt zu denken. Sollte ich mal zum Arzt gehen?

Hallo Andreas,

Hagens Reaktion überraschte mich ebenso. 05

Gruß, Uwe
Antworten Top
#8
(20.03.2026, 15:30)Kuwer schrieb: Hagens Reaktion überraschte mich ebenso.  05

Hallo Uwe, Hallo Daniel,

na, wenn Daniel doch keine telepathischen Kräfte hat und Du das auch so siehst, dann kann ich das Bolzenschussgerät ja wieder in die Schublade legen. 
Hab ich noch mal Schwein gehabt.  19

Schönes Wochenende, Andreas.
Antworten Top
#9
... wobei ich sowas auch irgendwo in die Leitung verorten würde 17 heißer Draht ins Netz, glühende Platte 21 wenn nicht beim Öffnen schon eine Meldung kam dass da jemand seine Hand drauf hat ...

Zitat:Es erscheint (eigenartigerweise nicht immer) die Meldung:
"Dokument wird verwendet.
xxx.xlsm ist zum Bearbeiten durch xxx gesperrt."

Speichern geht z.B. nicht, wenn die Verbindung zum File unterrochen war. Kommt selten z.B. im Netz vor, ist aber leider nicht ausgeschlossen Sad Oder irgendwelche Prozesse haben das blockiert und es gab Timeouts. OK, ich hab auch schon im Netz gewuselt da hießen die Stecker noch BNC und die Netzwerke 10BASE2 Wink Aber im LAN hatte ich so was auch noch Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste