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

Excel schließt fälschlicherweise alle Workbooks obwohl

Forumthread: Excel schließt fälschlicherweise alle Workbooks obwohl

Excel schließt fälschlicherweise alle Workbooks obwohl
08.05.2024 15:31:31
Harterstein
Hallo zusammen,

ich bin mal wieder am verzweifeln - vielleicht hat jemand ja eine Lösung parat.

Ich habe mir eine Excel Datenbank programmiert, welche aus 2 Workbooks besteht.
Workbook1: Enthält die eigentlichen Daten (Backend)
Workbook2: Enthält den Programmcode um u.a. ein Formular anzuzeigen.

Das Formular von Workbook2 greift wiederum auf die Datenbank von Workbook 1 zu.

Schließen kann man die Datenbank in dem man im Formular auf einen Button "Close" drückt.
Dadurch wird ein VBA Code ausgelöst im Sub CloseExcel_Click (Code siehe unten) und da fangen nun die Probleme an...

Das Problem:
Wenn man Close drückt, werden nicht nur die zwei Datenbank-Workbooks geschlossen sondern Excel schließt einfach alle geöffneten Workbooks mit obwohl ich Workbook1 und Workbook2 gezielt über den Befehl Windows("Workbook1/2.xlsm").Close SaveChanges:=False schließe.
Dabei funktioniert das Schließen des Backends noch aber sobald ich das Workbook2 über das Script schließen möchte, werden auch alle anderen Excel Instanzen geschlossen. Bzw. "geschlossen" ist wohl der falsche Ausdruck - Ich glaube alle anderen Excel Instanzen werden einfach mit abgewürgt, da ungespeicherte Änderungen einfach verworfen werden und beim Wiederöffnen der anderen Instanzen ein abgesicherter Modus angeboten wird.

Kuriosität 1:
Auch wenn ich Workbook1 normal über den Code schließen lasse, darauffolgend den Code dann aber abbreche und Workbook2 dann von Hand über das "X" Schließe, dann werden auch alle anderen Excel Instanzen mitgeschlossen - ganz seltsam...
--> Excel bringt da wohl irgendwas zwischen den einzelnen Instanzen durcheinander und sieht diese fälschlicherweise als eine Instanz... keine Ahnung...

Kuriosität 2:
Wenn ich nach dem Öffnen der Datenbank nichts unternehme (also das Frontend nicht auf das Backend zugreifen lasse) sondern einfach nur wieder auf close klicke, dann lässt Excel alle anderen Instanzen offen und es funktioniert so wie es funktionieren soll...

Hat irgendwer eine Ahnung was das sein könnte?
Bzw. ein Workaround wäre auch sehr hilfreich...

Ich bin jedenfalls am Ende mit meinen Ideen... :(

Danke für Eure Hilfe




Private Sub CloseExcel_Click()

Dim ctrl As Control

On Error Resume Next

For Each ctrl In NewEntry.MultiPage1("Tab5").Controls
If TypeName(ctrl) = "TextBox" Then
If Not ctrl.name = "TBPath" And Not ctrl.name = "TbFolderStorage" Then
NewEntry.Controls.Remove (ctrl.name)
End If
End If
Next

'--Setzt Schreibschutz und schließt Backend mit Daten---
Workbooks("Workbook1.xlsm").Worksheets("Overview").Unprotect "1118"
Workbooks("Workbook1.xlsm").Worksheets("Overview").Cells(1, 2) = ""
Workbooks("Workbook1.xlsm").Worksheets("Overview").Protect "1118", AllowFiltering:=True, AllowFormattingColumns:=True
Workbooks("Workbook1.xlsm").Worksheets("Production").Protect "1118", AllowFiltering:=True, AllowFormattingColumns:=True
Workbooks("Workbook1.xlsm").Close SaveChanges:=True

'--Prüft ob noch andere Excel Instanzen außer der Datenbank offen sind
If Workbooks.count > 1 Then
'--Wenn mehr als Datenbank geöffnet, dann nur Frontend der Datenbank schließen
Windows("Workbook2.xlsm").Visible = True
Windows("Workbook2.xlsm").WindowState = xlMaximized
Windows("Workbook2.xlsm").Close SaveChanges:=False
Else
'Application.displayAlerts = True
'--Wenn nur Datenbank geöffnet, dann komplettes Excel schließen _
(sodass keine leeren Fenster offen bleiben)
ThisWorkbook.Saved = True
Application.displayAlerts = False
Application.Quit
Application.displayAlerts = True
End If

'Formular schließen
Unload Me

'Application.Quit

End Sub









Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
08.05.2024 15:39:03
Onur
Poste die DATEI mit dem Code.
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
08.05.2024 15:41:03
Onur
Wieso ist die Datei, die nur Daten enthält, eine XLSM ?
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
08.05.2024 17:42:20
Oppawinni
So bequem das globale On Error Resume Next auch sein mag....
Es verdeckt halt auftretende Fehler. Erwartest du da Fehler ?
Ich würde das Schließen auskommentieren und auch das On Error mal raus nehmen und sehen, ob da etwas schief läuft

Anzeige
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
13.05.2024 08:58:35
Harterstein
Danke für die Antworten.

„On error…“ habe ich rausgenommen. Leider auch das gleiche Verhalten…

Hat sonst noch jemand eine Idee?

Danke euch
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
13.05.2024 09:32:18
Oppawinni
Meine Kristallkugel streikt gerade und da bleibt ohne Datei(en) nur wildes Raten.
Es scheint jedenfalls, dass du Excel irgendwie zum Absturz bringst.....
Anzeige
AW: Excel schließt fälschlicherweise alle Workbooks obwohl
13.05.2024 11:29:59
Harterstein
Habe den Fehler nun gefunden...

Ich habe irgendwann in der Vergangenheit mal eine Funktion eingebaut, die das Schließen von der Userform über das "X" verhindern soll.
Genau diese Funktion hat aber nicht nur das Schließen der Form über "X" sondern auch ein "Unload" der Form verhindert.

Beim Schließen der zugehörigen Arbeitsmappe wurde die Form dann ohne Unload "gekillt" -> So schlau wie Excel ist, hat es hier keinerlei Fehler ausgespuckt sondern hat einfach alle Excel Instanzen geschlossen. Naja, ein richtiger Müll halt...

Die Lösung war also die QueryClose Abfrage (siehe unten) anzupassen, so dass diese nur noch bei dem "X" greift aber nicht bei Unload - da muss man erstmal drauf kommen. ;)

Vielleicht hilft das ja jemanden auch mal in der Zukunft..
Nochmals danke für Eure Antworten




Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then 'V6.74
Cancel = Not CloseMode
End If
End Sub
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige