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.