Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Fehlermeldung beim Schließen
03.04.2019 10:36:44
Michael
Hallo zusammen,
nachdem mir gestern so prima geholfen wurde habe ich heute gleich wieder ein Problem.
Ich habe eine Combobox und den folgenden Code hinter der Combobox:

Private Sub cmbBaukosten_Change()
Application.ScreenUpdating = False
Application.Run "SchutzAus"
Application.Run "Baukosten_anzeigen"
Application.Run "SchutzEin"
Application.ScreenUpdating = True
End Sub

Dies funktioniert auch alles prima. Auch wenn die Datei abgespeichert wird gibt es keine Fehlermeldung. Jetzt das merkwürdige. Wenn die Datei geschlossen wird bekommen ich die Fehlermeldung "Die Methode 'ScreenUpdating' für das Objekt '_Application' ist fehlgeschlagen." Wenn ich jetzt auf Debuggen gehe wird die erste Zeile aus obigem Code angezeigt. Wenn ich dann auf Beenden gehe erhalten ich wieder die gleiche Fehlermeldung, nur dass diesmal beim Debuggen die gleiche Zeile aus dem Unterprogramm "Baukosten anzeigen" hinterlegt ist (ich weiß die Zeile ist doppelt und müsste eigentlich nicht sein). Ein zweites Mal Beenden schließt dann endlich die Datei.
Die Zeile selbst kann ja nicht falsch sein. Es gibt auch nirgends einen Aufruf, dass beim Schließen der Datei die entsprechenden Codezeilen durchlaufen werden sollen (beim Schließen wird überhaupt kein Code ausgeführt). Trotzdem werden diese Zeilen beim Schließen anscheinend ausgeführt und ScreenUpdating scheint Excel dann nicht mehr ausführen zu können.
Die Fehlermeldung nervt und ich bin völlig ratlos.
Grüße
Michael

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:06:56
Memo
Hi Michael,
ich bin zwar neu in der VBA Welt, aber falls dein Makro tadellos funktioniert und du das erwartete Ergebnis bekommst, dann kannst du die Fehlermeldung mit "On Error Resume Next" unterdrücken.
Private Sub cmbBaukosten_Change()
Application.ScreenUpdating = False
Application.Run "SchutzAus"
Application.Run "Baukosten_anzeigen"
Application.Run "SchutzEin"
Application.ScreenUpdating = True
On Error Resume Next
End Sub

Bis du den tatsächlichen Fehler gefunden hast, kannst du zumindest mit On Error Resume Next Fehlerfrei arbeiten.
Gruß
Memo
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:10:57
Luschi
Hallo Memo,
1. steht der Befehl 'On Error Resume Next' an der falschen stelle und
2. wer jeden auftretenden Fehler so abwürgen will, bekommt nie ein sauber laufendes Vba hin
Gruß von Luschi
aus klein-Paris
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:13:17
Michael
Hallo Memo,
auch mit dem Zusatz "On Error Resume Next" kommen die Fehlermeldungen beim Schließen. Keine Ahnung warum.
Ich habe auch schon überlegt, ob die Excel-Datei einfach defekt ist. Um dies auszuschließen habe ich den gesamten Code exportiert, die Datei ohne Makros als .xlsx abgespeichert. Die abgespeicherte Version wieder geöffnet, den ganzen Code wieder importiert und dann wieder als .xlsm unter neuem Namen abgespeichert. Aber auch dies leider ohne Erfolg.
Weitere Vorschläge?
Grüße
Michael
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:18:15
Daniel
Wir müssten mal die ganze Arbeitsmappe sehen um zu prüfen, an welcher Stelle der Code beim Schließen angeschoben wird. Sonst kann man nur rumraten.
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:41:06
Michael
Hallo Daniel,
hier die ganze Datei. https://www.herber.de/bbs/user/128882.xlsm
Normalerweise ist die Datei geschützt. Ich habe den Schutz herausgenommen und auch die beiden Codestücke, die den Schutz normalerweise ein- und ausschalten. Außerdem habe ich auch noch ein paar Blätter gelöscht, damit die Datei unter 300kB kommt.
Der Fehler tritt aber auch in dieser Datei auf.
Also viel Spaß beim Suchen. Ich bin ratlos.
Und vielen, vielen Dank im Voraus
Michael
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:54:44
Daniel
Sorry, da passieren mir viel zu viele Events die ich weder kontrollieren noch auf die Schnelle nachvollziehen kann. Bei der Vielzahl an automatischen Aktionen kann ich mir aber durchaus vorstellen, dass da irgendwo was querschießt.
Im Übrigen habe ich die erste Fehlermeldung schon erhalten, bevor ich etwas angefasst habe (bei ActiveWorkbook.PrecisionAsDisplayed = False), in irgendeinem Event. Tut mir echt leid, das fass ich nicht mehr an. Vielleicht traut sich ja jemand anders ran.
Grüße
Daniel
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:07:17
Luschi
Halo Michael,
sicher hast Du beim Schließen der Datei (Arbeitsmappe) eine Aktion drin, die den Wert der Combobox auf einen Standardwert setzt. Dadurch wird aber das Ereignis 'cmbBaukosten_Change' nochmals aufgerufen, obwohl sich Excel aber schon im Schließen-Modus befindet; und da mag Excel solche Anweisungen nicht mehr.
Entweder schmeißt Du die Combovox-Wert-Änderung an der Stelle raus oder du verhinderst es über eine boolsche Variable.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 11:29:31
Michael
Hallo Luschi,
eigentlich müsste es sein und so etwas hatte ich mir auch schon überlegt.
Aber: Es gibt im Zusammenhang mit der CombBox keinen weiteren Code im ganzen Projekt. Ich wüsste auch nicht das, bzw. wo ich einen Standardwert hinterlegt hätte. Code der beim Schließen der Datei ausgeführt wird müsste ja wohl unter "Diese Arbeitsmappe" stehen, aber dort gibt es nur Code für "Before_Safe", "Deactivate", "Open", "SheetActivate", "SheetChange" und "SheetDeactivate". Und kein Codeteil hat irgendetwas mit der Combobox zu tun.
Ich wüsste nicht, wie ich deinen Tipp umsetzen sollte.
Grüße
Michael
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 13:57:12
Torsten
Hallo,
also den Fehler beim Schliessen habe ich gefunden. Den beim Oeffnen, den Daniel beschrieben hat, leider nicht. Aber vielleicht kommt der ja bei dir garnicht. Ich hab die Zeile mal auskommentiert.
Der Fehler beim Schliessen ist ein Eintrag in den Eigenschaften der Combobox. Dort wird unter LinkedCell auf eine Zelle "KalkArt" verwiesen (ist Zelle W1), in der momentan eine 1 drin steht. Kein Plan, wie die befuellt wird und warum das verlinkt ist. Ich habe diese Zelle mal geloescht und siehe da, kein Fehler beim Schliessen. Also da solltest du mal schauen, ob du diese Verlinkung brauchst. Wenn ja, solltest du die Zelle vorm Schliessen leeren lassen.
Gruss Torsten
Anzeige
AW: VBA Fehlermeldung beim Schließen
03.04.2019 16:43:49
Michael
Hallo Torsten,
zunächst einmal vielen Dank für die Antwort. Ich werde es morgen ausprobieren. Aber auch wenn dies der Fehler ist, habe ich eine Anschlussfrage.
Ich benötige die Verlinkung, da die Combobox ja verschiedene Blöcke anzeigt, bzw. ausblendet. Und von allen ausgeblendeten Blöcken soll ja die Summe nicht mitgezählt werden. Je nach Auswahl der Combobox steht in Zelle W1 eine 1, 2, 3. oder 4. Und in der Zelle neben der Summe habe ich eine einfache Wenn-Abfrage geschrieben (siehe z.B. Zelle I78), die entweder 0 oder 1 ausgibt. Und die Summe wird dann mit dieser Zahl multipliziert.
Wenn ich jetzt die Verlinkung weglassen soll, dann brauche ich eine Formel, welche die jeweilige Auswahl der Combobox direkt ermittelt und verarbeitet. So eine Formel kenne ich aber nicht.
Beste Grüße
Michael
Anzeige
AW: VBA Fehlermeldung beim Schließen
04.04.2019 08:08:10
Torsten
Hallo Michael,
also ich hab nochmal drueber geschaut. Ich komme zwar nicht dahinter, welches Problem Excel mit dieser LinkedCell hat, aber ich hab nen Workaround gefunden. Wenn naemlich diese Zelle "KalkArt" leer ist, schliesst die Datei ohne irgendwelche Probleme. Also was habe ich gemacht:
Die LinkedCell "KalkArt" bleibt in den Eigenschaften der Combobox.
Aber ich leere diese Zelle vor dem Schliessen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Tabelle1.Range("KalkArt").Clear
End Sub

Dann gab es aber ein Problem mit dem Ein- und Ausblenden im Modul. Weil ja kein Case mehr zutrifft. Also habe ich hier noch ein 5. Case eingebaut fuer Zelle leer.

Private Sub Baukosten_anzeigen()
Dim Zeilen As Integer
Dim Erste_Zeile As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Select Case Range("KalkArt")
Case 1:
Erste_Zeile = Range("oben23").Row - 1
Zeilen = Range("unten23").Row + 2 - Erste_Zeile
Case 2:
Erste_Zeile = Range("oben24").Row - 1
Zeilen = Range("unten24").Row + 2 - Erste_Zeile
Case 3:
Erste_Zeile = Range("oben33").Row - 1
Zeilen = Range("unten33").Row + 2 - Erste_Zeile
Case 4:
Erste_Zeile = Range("oben34").Row - 1
Zeilen = Range("unten34").Row + 2 - Erste_Zeile
Case "":
Exit Sub
End Select
Call Ausblenden(Range("oben23").Row - 1, Range("unten34").Row + 3 - Range("oben23").Row)   ' _
alle ausblenden
Call Einblenden(Erste_Zeile, Zeilen)                ' ausgewählen Block einblenden
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Das Schliessen funktioniert jetzt ohne Probleme, allerdings ist beim Oeffnen die Combobox erstmal immer leer. Man muss erst eine Auswahl treffen.
Ich hoffe, das ist so ok fuer dich.
Jetzt kommt auch der Fehler beim Oeffnen mit dieser Zeile nicht mehr:

ActiveWorkbook.PrecisionAsDisplayed = False
Gruss Torsten
Anzeige
AW: VBA Fehlermeldung beim Schließen
04.04.2019 13:12:20
Michael
Hallo Torsten,
ich habe das Gefühl wir suchen an der vollkommen falschen Stelle.
Zunächst einmal bei mir funktioniert dein Workaround nicht. Immer noch gleiche Fehlermeldung.
Um auszuschließen, dass die Excel-Datei defekt ist habe ich die ganze Datei neu aufgebaut. Keine Blätter kopiert sondern nur Bereiche, dann alle Buttons, etc wieder eingefügt und die jeweiligen Codestücke per cut'n'past eingefügt. Damit sollte die Datei doch eigentlich OK sein, oder?
Aber leider kein Erfolg, gleicher Fehler. Dann habe ich die LinkedCell in der ComboBox vollkommen entfernt und den Code auf ListIndex umgestellt. Ich habe sogar die Variable KalkArt, wie von dir vorgeschlagen beim Schließen hart gelöscht. Alles egal kein Erfolg. Dann habe ich Variabel nach links verschoben und siehe da, es ging. Aber nur eine paar Mal. Nachdem ich die MwSt. Spalte einmal ein- und wieder ausgeblendet hatte (keine sonstige Veränderung am Code oder der CombiBox
oder der Variablen KalkArt oder sonst irgendeiner Zelle) ist alles wieder beim alten.
Dann habe ich die Zeilen an denen er hängen bleibt einfach mal auskommentiert und als Ergebnis bleibt er jetzt an einer anderen Zeile hängen?!?!?!
Den Fehler beim Öffnen hatte ich übrigens noch nie?!?!?!?
Ich habe die letzte Version der Excel Datei noch einmal hochgeladen. Den Code mit dem Blattschutz habe ich ebenfalls mal drin gelassen. Nur das PW habe ich auf "a" gesetzt.
https://www.herber.de/bbs/user/128915.xlsm
Kann es ein Excel-Fehler sein? Wir nutzen die Version 2016 MSO (16.0.4738.1000) 32-Bit
Grüße und echt vielen Dank für die Hilfe
Michael
Anzeige
AW: VBA Fehlermeldung beim Schließen
04.04.2019 13:56:56
Michael
Hallo Torsten,
ich glaube ich habe Fehler gefunden. Es war vermutlich die Combobox selbst. Ich habe die Combobox gelöscht und ein neue eingefügt und jetzt scheint es zu funktionieren. Mit meinem Datei-Fehler war ich wohl auf der richtigen Spur, nur hatte ich die Combobox kopiert und nicht neu erstellt.
Grüße
Michael
AW: VBA Fehlermeldung beim Schließen
04.04.2019 15:51:34
Torsten
Hallo Michael,
dann ist ja gut. Aber komisch, dass die Datei bei mir mit dem Workaround funktioniert ohne Probleme.
Aber ok.
Wuensch dir was.
Gruss Torsten

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige