Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
444to448
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
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

WebBrowser1.ExecWB stirbt, da OleInitialize fehlt

WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 15:25:39
Otto
Hallo Forum,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
in eine Userform habe ich ein WebBrowser-Objekt aus den Microsoft Internet Controls eingebunden, wie ich es in Hans' Beispielen Automatische Passworteingabe im Internet-Formular (2132/03) oder auch in Suche im Internet in Herbers Excel-Archiv (1837/02) gelernt habe. Das funktioniert auch wunderbar. Mein Programm klickt sich automatisch durch die fraglichen Internetseiten, bis es zu seinem Ziel kommt. Als nächstes möchte ich diese Seite komplett markieren lassen und in die Zwischenablage legen.
Das funktioniert mit Excel 8.0 (und dem IE 5.5 im Hintergrund) mit folgendem Codeschnipsel:
Versuche ich das Ganze mit Excel 9.0 (und IE 6.0) bleibt mein Programm an der ersten ExecWB-Zeile hängen und informiert mich mit dieser aussagekräftigen Fehlermeldung:
Laufzeitfehler '-2147221500 (80040004)': Die Methode ExceWB für das Obekt 'IWebBrowser2' ist fehlgeschlagen
Die Seite http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/hosting/wbcustomization.asp machte mich dann darauf aufmerksam, dass die beiden Methoden OleInitialize und OleUninitialize erforderlich sind.
Doch wie ich zu denen komme habe ich nicht wirklich gefunden.
Zu Zeit benutze ich folgendes:
in einem Standardmodul:
und in meiner Userform:
Leider hilft das nicht, der Fehler tritt unverändert auf. Hat jemand einen Tipp für mich?
Gruß Otto

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

Betreff
Datum
Anwender
Anzeige
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 17:15:00
Nepumuk
Hallo Otto,
der Aufruf der DLL ist falsch. Du musst wirklich: Call OleInitialize(Null) schreiben und nich Nothing.
Gruß
Nepumuk
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 17:22:29
Otto
Hallo Nepumuk,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
ich habe das jetzt nach Null geändert, leider bleibt die Fehlermeldung gleich. Hast Du diese Fehlermeldung schon mal beseitigen können?
Gruß Otto
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 17:58:23
Nepumuk
Hallo Otto,
ich bin mir nicht sicher, ob du mit dem Aufruf der DLL überhaupt etwas an dem Problem zu ändern vermagst.
Ich kenne den Aufruf aus einem ganz anderen Zusammenhang. Nämlich wenn eine Multithread-EXE eine Einzelthread-DLL benutzt. Dann bekommt der Clientthread der als erstes OleInitialize() aufruft die Verwaltung der Komponente. Das ist darum wichtig, weil sich die Einzelthreads gegenseitig z.B. den Zwischenspeicherinhalt überschreiben würden.
Kannst du die Mappe mal auf den Sever laden, damit ich mir das genauer ansehen kann?
Gruß
Nepumuk
Anzeige
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 18:23:37
Otto
Hallo Nepumuk,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
ich habe das hierher gespeichert. Leider kann ich UserId und Passwort nicht angeben.
https://www.herber.de/bbs/user/7639.xls
Gruß Otto
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
23.06.2004 19:40:09
Nepumuk
Hallo Otto,
das scheint ein Bug in Excel2000 zu sein. In Excel bekomme ich den selben Fehler. Ich habe es dann in VB mit folgendem Code versucht:


Option Explicit
Private Sub Form_Load()
   WebBrowser1.Navigate "http://www.bahn.de/"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim eQuery As OLECMDF
    On Error Resume Next
    eQuery = WebBrowser1.QueryStatusWB(OLECMDID_SELECTALL) And WebBrowser1.QueryStatusWB(OLECMDID_SELECTALL)
    If Err.Number = 0 Then
        If eQuery And OLECMDF_ENABLED Then
            WebBrowser1.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
            WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
        Else
            MsgBox "Select und Copy nicht möglich."
        End If
    Else
        MsgBox Err.Description
    End If
End Sub


und da funktioniert es einwandfrei. Warum dem so ist, weiß nur die Fa. winzigweich allein.
Tut mit leid, dass ich dir da nicht weiterhelfen kann. Ich kann dir nur anbieten, die ganze Routine in VB zu schreiben und die Daten dann an Excel zu übergeben.
Gruß
Nepumuk
Anzeige
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
24.06.2004 12:39:39
Otto
Hallo Nepumuk,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
Zuerst mal Danke für die Bestätigung. Wie ich sehe, hätte mein Beispiel viel kürzer ausfallen können. Nutzt Du auch Excel 2000? Was heißt bei Dir die ganze Routine in VB zu schreiben? Eigentlich fehlt ja nur der Select all und der Copy?
Gruß Otto
AW: WebBrowser1.ExecWB stirbt, da OleInitialize fehlt
24.06.2004 15:46:09
Nepumuk
Hallo Otto,
ich benutzte auch Excel2000 aber mit SR3 und Windows2000 SR4. Ich könnte dir das kopieren der Daten vom Webbrowser in die Exceltabelle in VB schreiben. Wenn du das Programm in Excel startest, wird nicht das Userform geöffnet, sondern ein Form in VB. Das holt sich die Daten, wie z.B. das Kennwort aus der Exceltabelle und kopiert die Daten der Internetsite in die Exceltabelle. Den Unterschied würdest du nicht bemerken. In meinem Testcode habe ich natürlich nur die Startsite kopiert. Die Daten waren anschließend in der Zwischenablage.
Gruß
Nepumuk
Anzeige
.ExecWB stirbt häufig
25.06.2004 13:17:19
Otto
Hallo Nepumuk,
Meine Testumgebung: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4
Das Problem beginnt immer interessanter zu werden. Der folgende Makro läuft immer problemlos durch:
Spiele ich jetzt mit den If True und setze statt dessen If False ein, so kommt häufig der Fehler. Ich kann es noch nicht genau reproduzieren. Ich vermute, dass mir das PopUp der Impuls AG, das von www.bahn.de aus angestoßen wird, diese Probleme macht. Oder ich muss noch etwas anderes synchronisieren?
Die VB-Lösung wäre zwar interessant, dennoch hoffe ich immer noch den VBA überreden zu können.
Gruß Otto
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige