VBA: Readystate = 4 und Laufzeitfehler

Moderator: ModerationP

VBA: Readystate = 4 und Laufzeitfehler

Beitragvon turbosoeckchen » 14. Jun 2019, 11:37

Hallo liebe Leute!

Folgende Frage:
Über ein Makro steuere ich den Internetexplorer, um mir bestimmte Bilder aus dem Internet zu ziehen.

Auf meinem Rechner funktioniert das Makro einwandfrei, jedoch bei einem Kollegen nicht:
Hier kommt es immer zu dem Laufzeitfehler 462 - ...System existiert nicht.

Der Debugger meckert über folgenden Code:
Code: Alles auswählen
              Do Until objIE.ReadyState = 4: DoEvents: Loop


objIE ist der Internetexplorer der vorher gestartet wurde.

Woran könnte das liegen? Auf meinem Rechner funktioniert es einwandfrei, auf einigen anderen nicht.
turbosoeckchen
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 40
Registriert: 09. Mär 2019, 19:21

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon 1Matthias » 14. Jun 2019, 20:56

Moin!
Mal als Frage, existiert der IE bei den Rechnern mit Fehler wirklich? Also wird da auch eine Seite angezeigt oder wird gar kein IE gestartet? Das am besten mal im Einelschritt und mit sichtbaren IE testen. Ansonsten könntest du ggf. noch probieren, an stelle von . readystate = 4 mit .busy zu arbeiten. Vermute aber eher mal, dass es zum selben Ergebnis führt. Kannst du sonst mal den anderen COde posten, der davor kommt und wo de IE gestartet wird.
VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 581
Registriert: 15. Aug 2017, 18:36

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon DerHoepp » 15. Jun 2019, 19:09

Moin,

bei externen Bibliotheken hängst du am Fliegenfänger. Unterstützt eine Version nicht mehr alle Eigenschaften der Vorversion, wird es einen Fehler geben (du könntest noch dazuschreiben, wie der fehler wirklich heißt und was du sonst so machst). Ich persönlich würde auf das Ganze Gepäck des IE-Verzichten und einfach ein xmlhttp-Objekt und ein HTMLDocument als Objekte nutzen. Die können eigentlich alles, ohne die Seite auch darstellen zu wollen.

Viele Grüße
derHÖpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7888
Registriert: 14. Mai 2013, 11:08

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon theoS » 15. Jun 2019, 20:11

Ich persönlich würde auf das Ganze Gepäck des IE-Verzichten und einfach ein xmlhttp-Objekt und ein HTMLDocument als Objekte nutzen.

Jetzt würde mich bei deiner Methode interessieren, wie du das löst, wenn du dich an eine Seite anmelden musst (https) und dann angemeldet weitermachen.
Dafür habe ich bis jetzt noch keine Lösung. Alles was ich zu dem Thema gefunden hatte war mit gewöhnlichem http.
Hast du da ein Beispiel?
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4603
Registriert: 19. Apr 2008, 00:14

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon DerHoepp » 17. Jun 2019, 19:55

Hallo Theo,
Sobald es um sessiontokens, cookietokens und tls-handshakes geht, würde ich bei meinem aktuellen Kenntnisstand auf Python umschwenken. Ich schaffe es derzeit nicht in VBA einen ordentlichen REST-Header mit Tokenverifikation zu setzen. Das steht aber auf meiner to-learn Liste der nächsten Jahre. Aber, soviel kann ich schon mal verraten, Probleme mit Tls-Handshakes bei https Seiten sind in hohem Maße von der Serverseitigen Umgebung abhängig.Cookkes und SessionIDs sind davon unabhängig aber nicht weniger komplex. Pauschale Antworten passen da leider nie (aber ich glaube, das hatten wir schon mal, ohne konkrete Angabe des serverskripts ist Hilfe schwierig).
Viele Grüße
DerHoepp
Vom Mobiltelefon gesendet
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7888
Registriert: 14. Mai 2013, 11:08

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon Fen » 17. Jun 2019, 20:33

@DerHoepp

ich dachte, ich hätte etwas über http-headers gelernt, aber was ist ein "Rest-header"?

Bis jetzt lese ich headers entweder im Browser-debugger im Reiter "Netzwerk" (cntr-shift-E) oder mit curl -I aus, z.B.

cmd:>curl -I www.office-loesung.de

oder VBA

Code: Alles auswählen
MSXML2.ServerXMLHttp
hd = .GetAllRespsonseHeaders
Srv = .GetResponseHeader("Server")


mfg
Fen
 

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon theoS » 18. Jun 2019, 05:46

Schätze SET sollte das heissen. GET krieg ich hin, aber set geht nur ohne https.
Also doch weiter das ie-object.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4603
Registriert: 19. Apr 2008, 00:14

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon DerHoepp » 18. Jun 2019, 08:16

DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7888
Registriert: 14. Mai 2013, 11:08

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon Fen » 18. Jun 2019, 09:40

@DerHoepp:

auch wenn ich keinen direkten Zusammenhang mit der ursprünglichen Frage erkennen kann:

M.W.n. kann MSXML2 alle in dem Wiki genannten http-Protokolle (head, option usw) abschicken genauso wie beliebige header-Informationen. Da "gute" Webseiten aber gegen CSRF ua geschützt sind, müssen header und Cookies parallel übergeben werden. Die Syntax ist so kompliziert, dass gute Beispiele notwendig sind.

Bei einem oder zwei Versuchen kam ich ziemlich "ins Schleudern".

mfg
Fen
 

Re: VBA: Readystate = 4 und Laufzeitfehler

Beitragvon DerHoepp » 18. Jun 2019, 11:48

Hallo fen,

ich bin auf Theos Zusatzfrage eingegangen. Und meine letzte Herausforderung war es eben, eine REST-API zu bedienen. Daran bin ich gescheitert.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7888
Registriert: 14. Mai 2013, 11:08


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: FabMan19, jackthebender, JBruemmer, Lucky Joe, TommyDerWalker und 23 Gäste