Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1276to1280
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
Inhaltsverzeichnis

Laufzeitfehler91 bei vba steuert IE

Laufzeitfehler91 bei vba steuert IE
Tom
Hallo,
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.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler91 bei vba steuert IE
14.09.2012 14:56:24
Tom
Kann ich meinen Beitrag hier in diesem Forum irgendwie editieren?
habe mich nämlich verdreht, denn das:
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

hätte besser heissen müssen:
ich schreibe in der website in vier felder folgende werte:
- in ein feld einen wert (suchkriterium)
- in eine dropbox einen wert (filtername)

&nbsp&nbsp&nbsp&nbsp&nbsp hier &nbsp&nbsp l a u f z e i t f e h l e r
- in ein von-feld ein datum
- in ein bis-feld ein datum

Anzeige
AW: Laufzeitfehler91 bei vba steuert IE
14.09.2012 23:57:49
dan
Hallo,
IEApp.ReadyState arbeitet warcheinlich nicht ganz richtig?
Obwohl ReadyState 'complete' ist, ist der Element immer noch nicht an der Seite vorhanden :-(.
Koennte man das z.B. so machen?
' Add References:
' - Microsoft HTML Object Library
' - Microsoft Internet Controls
Private Sub SetValueIfLoaded(ByRef browser As InternetExplorer, ByVal elementId As String,  _
ByVal newValue As String)
Dim startTime As Single: startTime = Timer
Dim pauseSecondsTime As Integer: pauseSecondsTime = 60
Do While (DateTime.Timer 
sub test()
...
SetValueIfLoaded browser, "input1", "test123"
...
End Sub P.S. Sind vielleicht Gordon, Fritz0609 und Tom Stern eine und die selbe Person? :-)
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige