Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

BeforeClose with ActiveX-Elementen

BeforeClose with ActiveX-Elementen
13.05.2023 14:31:08
Oliver

Hallo Zusammen, ich bin am verzweifeln...

Mein BeforcClose Event wird nicht korrekt ausgeführt.
Wenn die Datei gespeichert wird und danach auf schliessen gedrückt wird, kommt nochmal einen Speicherdialog ob die Datei gespeichert werden soll.
Ich habe in einem anderen Modul den selben CODE eingefügt und dort funktioniert er einwandfrei.

Zuerst Dachte es läge an den ActiveX Elementen auf den Arbeitsblatt Besch. + Gel Schr, wenn ich diese ComboBoxen "Ja" entferne funktioniert es wieder
Lösche ich jedoch alles andere bis auf diese zwei Elemente funktioniert es jedoch auch. Die Datei Grösse von 3.39 MB stösst jedoch auch noch nicht an die
Grenze welche Microsoft veranschlagt hat von 10 MB. Die Speicherzeit auf dem Geschäfts-Server ist generell mit bis zu 3.8 sec sehr lange.
Lösche ich zwei beliebige ActiveX-Elemente funktioniert es wieder - welche scheinen keine Rolle zu Spielen.

Hätte jemand eine Idee wie das umgangen werden kann?
in der Suche nach der Anzahl der Maximal zulässige ActiveX Elemente pro Datei wurde ich leider nicht fündig.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.EnableEvents = False
    On Error Resume Next
    'Application.OnTime dtmNextTime, "Aktualisieren", , False
    
    Application.AskToUpdateLinks = True
    ThisWorkbook.UpdateLinks = xlUpdateLinksUserSetting

            'Call btn_Schliessen
        
            If ThisWorkbook.Saved = False Then
            MsgBox "Bitte die Datei zuerst speichern!"
            
            Else
            Application.DisplayAlerts = False
            ThisWorkbook.Close SaveChanges:=False
            Application.DisplayAlerts = True
            
            End If

Application.EnableEvents = True
    
    
    With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayStatusBar = True
    .EnableEvents = True
    .DisplayAlerts = True
    End With

End Sub


Vielen Dank für eure Unterstützung und Ideen...
Freundliche Grüsse aus der Schweiz Oliver

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: BeforeClose with ActiveX-Elementen
14.05.2023 09:20:37
Pappawinni
Ich denk mal, dass da
ThisWorkbook.close
verfehlt ist.
Ich denk du müsstest
Cancel = True : exit sub
setzen, wo der Vorgang des Schließens abgebrochen werden soll.


AW: Ich nix verstehn Bahnhof
14.05.2023 10:49:56
Pappawinni
Sorry, die Frage ist natürlich noch offen,
denn ich verstehe die Intention hinter deinem Code überhaupt nicht.


AW: Ich nix verstehn Bahnhof
14.05.2023 12:48:04
Oliver
Guten Tag

Danke für die Antwort

Mein Problem ist, wenn ich die Datei Speichere und dann auf schliessen klicke, kommt die Meldung von Excel ob ich die Datei Speichern will.

Wenn ich eine ComboBox zur Laufzeit lösche, dann kommt die Meldung nicht mehr.
Starte ich die Excel erneut, dann kommt die Speichermeldung jedoch bereits wieder.

Eine Aktive Zelle vorher auszuwählen, hat leider auch nicht geholfen.
Auch dein Code Cancel = True : exit sub brachte leider auch nichts.


Anzeige
AW: Ich nix verstehn Bahnhof
14.05.2023 16:34:38
Pappawinni
Und was würdest du wollen?
Soll gespeichert werden, oder nicht, oder was?


AW: Ich nix verstehn Bahnhof
14.05.2023 20:28:23
Oliver
Wenn die Datei gespeichert wurde, soll die Datei geschlossen werden können ohne Display-Alerts.
Sonst soll die Speicherwarnung ganz normal kommen.


AW: Ich nix verstehn Bahnhof
14.05.2023 21:07:19
Pappawinni
Das ist aber doch das Standardverhalten.
Wenn ich ein Excelblatt aufrufe, nichts ändere und wieder schließe, dann passiert nichts, außer dass das Blatt geschlossen wird.
D.h. vermutlich startest du ein Makro, das etwas ändert..... und dann wird selbstverständlich das Standardverhalten dazu führen, dass eben nachgefragt wird,
ob gespeichert werden soll, oder nicht.


Anzeige
AW: BeforeClose with ActiveX-Elementen
14.05.2023 13:07:00
Oliver
Der Code funktioniert aus dem Modul heraus,
es führt nur zu einem Fehler wenn es mit dem BeforClose Event ausgelöst werden soll.

Warum das so sein soll, ist mir einfach nicht logisch...


AW: BeforeClose with ActiveX-Elementen
14.05.2023 18:38:52
Pappawinni
Du kannst nicht irgend einen Code einfach in einen Event rein werfen und erwarten, dass das dann funktioniert.
Wenn du z.B. im beforeClose ein Close aufrufst, wird automatisch wieder der Event aktiv und du drehst eine Schleife.
Wie gesagt, ich verstehe überhaupt nicht, was du erreichen willst.
Wenn du einfach so Code irgendwo rein pflanzt, dann fürchte ich, dass da andernorts in deinem Workbook auch noch Code steht, der Dinge tut, die er nicht sollte,
und dann muss du dich auch nicht wundern, wenn Dinge passieren, die du eigentlich nicht haben willst. Ich hatte da auch so Spezialisten unter meinen Kollegen, die irgendwelchen Code aus dem Internet zusammen kopiert haben, ohne zu wissen, was der genau macht und haben sich dann gewundert, dass sie da dieses und jenes Problem haben....
Schreib in Events nichts rein, von dem du nicht weißt, was es bewirkt.....

Man kann z.B. in beforeClose
ThisWorkbook.Saved = True
setzten, dann dürfte es keine Meldung geben, dass das Workbook nicht gespeichert wäre....Änderungen wären dann ggf. verloren.

Aber was du eigentlich willst, das weiß ich noch immer nicht, bin mir auch nicht sicher, ob ich das noch wissen will.
Niemand wird dir aber helfen können, wenn du das nicht vermittelst.

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige