Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1820to1824
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
Objekt von den Clients getrennt
18.03.2021 15:13:24
den
hallo!
ich habe eine ganz komische situation bei der ich rat bräuchte:
mein makro (initialisierung einer userform) läuft grundsätzlich fehlerfrei.
wenn ich allerdings die datei frisch öffne und die besagte userform initialisiere, bekomme ich den laufzeitfehler 2147417848 Automatisierungsfehler. Das aufgerufene Objekt wurde von den Clients getrennt.
debuggen ist auch nicht so einfach möglich, da sich excel danach sofort schließt!
durch das setzen von msgbox'es nach jeder zeile konnte ich den fehler aber eingrenzen:
er tritt dabei auf, wenn ein label.caption beschriftet wird (mit dem inhalt einer benamsten zelle)
wenn ich ein anderes makro vorher laufen lasse und erst anschließend die oben beschiebene userform initialisiere, läuft alles rund.
weiß jemand wie ich "das objekt wieder mit den clients verbinden kann"?
(was auch immer das bedeutet...)
bzw was hier das problem ist?
vielen dank!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Objekt von den Clients getrennt
18.03.2021 21:58:18
den
Hallo Max,
ich habe mich kurz durchgelesen (die meisten Google-Treffer landen im Herber-Forum). Es scheint ein Ereignis in die Quere zu kommen.
Lösung scheint:
entweder ein Application.EnableEvents = False am Anfang und True am Ende der besagte Procedure,
oder es gibt in dem Sub ein grössere Datenhandlung, bei dem mit einem DoEvents dazwischen da System wieder mehr Bewegungsfreiheit gibt.
Würde mich interessieren, ob es bei dir klappt.
Übrigens gut, dass Du die gesamte Fehlermeldung eingefügt hast. Manche geben sich nicht die Mühe und warten lieber.
VG
Yal

Anzeige
AW: Objekt von den Clients getrennt
19.03.2021 08:27:51
den
hallo yal!
zunächst mal vielen dank dass du wegen meines problems recherchiert hast!
auf Application.EnableEvents = False bin ich auch gestoßen, das bringt aber leider keine besserung.
doevents ist mir ehrlich gesagt neu, aber auch hiermit konnte ich das problem leider nicht lösen.
als hintergrund info: ich habe zunächst eine userform die eine combobox und eine eingabebox hat, damit sich der user selbst auswählen kann und sich mittels passwort identifiziert.
sind die eingaben korrekt, wird die problematische userform geladen.
in dieser stehen einige informationen (in form von labels), die in einer verborgenen tabelle gespeichert sind (in zellen denen namen zugewiesen sind).
ich habe doevent sowohl in der "passwort-userform" (am schluß), als auch im initialisierungsprozess der "informations-userform" eingegeben (direkt vor der zeile die den absturz verursacht, auch in kombination mit EnableEvents = False vorher und nachher).
ändert leider nichts! :-(
hast du (oder ein anderer experte) noch einen rat?
bin ein bisschen am verzweifeln...
vielen dank!!!
max

Anzeige
AW: Objekt von den Clients getrennt
19.03.2021 08:48:39
den
Hallo Max,
ich glaube leider, dass nicht das Coding den Fehler verursacht, sondern, dass ein Fehler passiert, der durch das Unterbrechen des Codings manifestiert. Dass es dabei sich an stet dieselbe Stelle im Coding sichtbar wird, hat sicher mit Interna des komplilierten Codes zu tun.
Irgendwie müsste man es hinbekommen, Excel so viel Zeit zuerst zu lassen, bis es soweit ist, und dann der modale Zustand für das Makro zu nehmen. So in der Art von:
#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit  _
Systems
#Else
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as Long) 'For 32 Bit Systems
#End If
Sub Sleep()
Dim i
For i = 1 to 10
Sleep 100 'delay in milliseconds
DoEvents
Next
End Sub


Anzeige
AW: Objekt von den Clients getrennt
19.03.2021 10:28:13
den
irgendwie bekomm ich das nicht hin...
ich hab die "Sub_Sleep" in ein eigenes modul gepackt und die #if anweisung vor der problematischen zeile platziert.
bekomme aber die meldung Fehler beim Kompilieren: Nach End Sub, End Function oder End Property können nur Kommentare stehen.
was mache ich da bitte falsch?

AW: Objekt von den Clients getrennt
19.03.2021 14:54:23
den
Hallo Max,
die #If-#Else-#End If sind Kompilierungsanweisung. Sie sagen Excel, dass je nach Windows Version 32 oder 64 bit welchen Deklaration von Sleep zu verwenden ist.
Diese gehören in dem Modul, wo Sleep eingesetzt wird, und zwar ganz oben direkt unter Option Explicit.
VG
Yal

Anzeige
AW: Objekt von den Clients getrennt
22.03.2021 08:31:49
den
danke für die erklärung.
das hab ich jetzt angepasst und Option Explicit eingefügt.
ich hab es sowohl in der userform, als auch in einem eigenen modul probiert.
vor der "problemzeile" schreibe ich "call sleep". hast du das eh so gemeint?
ich bekomme aber einen Compilierungsfehler. :-(
ich umgehe jetzt das problem so, dass ich beim öffnen der datei automatisch die userform lade (show), nach der die problematische userform "funktioniert".
nicht ideal, aber zumindest fehlerfrei... :-/
vielen dank nochmals!

AW: Objekt von den Clients getrennt
19.03.2021 15:42:55
den
Hi
EnableEvents schaltet nur die Workbook-/Worksheets-Events aus, nicht aber z.B. ein ComboBox_Change Ereignis. Das Laden der ComboBox könnte das Change Ereignis auslösen, so dass du irgendwie in einer Endlos-Schleife landest.
Wenn gar nichts mehr hilft, dann müsste man die Datei mal kopieren und schrittweise abspecken. Mal Tabelleninhalte löschen, testen. Mal direkt Userform2 starten bzw. Userform1 löschen, testen. Mal die Labels entfernen, testen. So lange bis nur noch der Fehler übrig bleibt.
cu
Chris

Anzeige
AW: Objekt von den Clients getrennt
22.03.2021 08:34:51
den
danke chris!
das ist ein guter hinweis, dass sich EnableEvents nur auf die Workbook-/Worksheets-Events bezieht.
die vorgehensweise mit "die datei bis zum fehler abspecken" merk ich mir!

AW: Objekt von den Clients getrennt
22.03.2021 09:19:52
den
danke chris!
das ist ein guter hinweis, dass sich EnableEvents nur auf die Workbook-/Worksheets-Events bezieht.
die vorgehensweise mit "die datei bis zum fehler abspecken" merk ich mir!

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige