Laufzeitfehler91 bei vba steuert IE
Tom
ich öffne aus excel heraus, per vba eine website mit dem IE
ich schreibe per vba in vier felder der website werte hinein,
die ich aus meiner excel-datei und
aus vba-eingaben, die ich beim vba-start vom user abfrage beziehe.
dann betätige ich per vba den senden-button auf der website.
die website sucht in einer datenbank, gibt die werte in eine html-TABELLE der website aus.
die ausgegebenen werte nehme ich und schreibe sie per vba in meine excel-tabelle.
das funktioniert soweit.
-------
nur gibt es ein laufzeitproblem, dass ich mit folgenden beiden zeilen nicht in den Griff bekomme:
Do: Loop Until IEApp.Busy = False
Do: Loop Until .ReadyState = "complete"
-----
ich schreibe in der website in vier felder werte:
- in eine dropbox einen wert (filtername)
- in ein feld einen wert (suchkriterium)
- in ein von-feld ein datum
- in ein bis-feld ein datum
-----
wenn das vba läuft, mit
IEApp.Visible = False
dann rauscht es bei der ca zehnten erfolgreichen datenabfrage von der website, in den fehler
Laufzeitfehler91 _ objektvariable oder With-blockvariable nicht festgelegt
und zwar immer genau da, wo ich auf der website in dieses von-feld per vba ein datum reinschreiben will:
.getelementbyid("so.datumVon").Value = TageZurueckDatumEngl ' Datum wird durch usereingabe, welche am anfang des scrips abgefragt wird, gesetzt.
-------
mit
IEApp.Visible = True
läuft das alles fast immer bis zur letzten abfrage durch.
wahrscheinlich, weil der aufbau des ie-fensters auf meiner kiste eine gewisse zeit benötigt.
auch wenn ich eine rechenintensive schleife vor das .getelementbyid("so.datumVon") einbaue, funktioniert es.
d.h. ich brauche einen vba-befehl, der nach
.getelementbyid("so.filterName").Value = "abcde1234"
das vba so lange bis zum nächsten vba-befehl warten lässt, bis das feld im ie ausgefüllt ist,
bzw. das nächste feld bereit ist, daten aufzunehmen.
richtig?
PS: die beiden zeilen bringen an der stelle offensichtlich nix:
Do: Loop Until IEApp.Busy = False
Do: Loop Until .ReadyState = "complete"
-----
mir fällt was auf:
TageZurueckDatumEngl
ist ein feld auf der website, in der ich ein datum im englischen datumformat reinschreibe
muss ich irgendwas, das in der zeile steht, in meinem quelltext deklarieren? :
.getelementbyid("so.datumVon").Value = TageZurueckDatumEngl
-----
sorry, ich weiss. viel geschrieben. aber ich wüsst nicht, wie ich es anders erklären soll.
Gruß. Tom.
Anzeige