Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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

Unregelmäßiger Laufzeit-Fehler 424 Internetabfrage

Unregelmäßiger Laufzeit-Fehler 424 Internetabfrage
26.06.2017 17:51:41
Marco
Hallo,
ich habe einen Code mit dem ich Dateien von dieser Seite herunterladen kann: https://www.regelleistung.net/ext/tender/
Sub MRLOrder()
Dim wbAE As String
Dim wkshAE As String
Dim matchday As String
Dim myDate As String
Dim myYear As String
Dim myMonth As String
Dim myDay As String
Dim OrderType As String
OrderType = "MRL"
wbAE = ActiveWorkbook.Name
wkshAE = ActiveSheet.Name
myDate = Workbooks(wbAE).Sheets("Tabelle1").Range("B1")
myYear = Format(Year(myDate), "0000")
myMonth = Format(Month(myDate), "00")
myDay = Format(Day(myDate), "00")
Dim ie As Object, daten As Object, zeile As Object, zelle As Object, Startdate As Date
Dim lZeile As Long, lSpalte As Long, anzahlTage As Integer, i As Integer, my_data As Object
Startdate = CDate(myDate)
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.regelleistung.net/ext/tender/"
While ie.Busy
DoEvents
Wend
ie.document.getElementById("form-type").Value = "3" 'Minutenreserveleistung
ie.document.getElementById("form-from-date").Value = CStr(CDate(Startdate))
ie.document.getElementById("submit-button").Click
Set my_data = ie.document.getElementById("tender-table").getElementsByTagName("a")
Dim link
Dim strNumber As String
Dim arrLinks(1) As String
i = 1
For Each link In my_data
If i = 1 Then
arrLinks(i) = link.href
End If
i = i + 1
Next
ie.Quit
ActiveSheet.Cells(1, 4).Value = Right(arrLinks(1), 4)
strNumber = Right(arrLinks(1), 4)
Call MeritOrder(strNumber, myYear, myMonth, myDay, OrderType)
End Sub
Der Code macht auch das was er tun soll. Mein Problem ist, dass ich in unregelmäßigen Abständen den "Laufzeit-Fehler 424: Object erforderlich" erhalte. Beispielsweise kann ich drei Mal hintereinander das Makro ausführen, ehe dann vier Versuche hintereinander mit den Problem abgebrochen werden.
Aus dem Debuggen-Modus ist ersichtlich, dass der Code immer an einen dieser Stellen hängen bleibt:
    ie.document.getElementById("form-type").Value = "3" 'Minutenreserveleistung
ie.document.getElementById("form-from-date").Value = CStr(CDate(Startdate))
ie.document.getElementById("submit-button").Click
Set my_data = ie.document.getElementById("tender-table").getElementsByTagName("a")
Was ist bei meinem Code nun noch genau falsch?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unregelmäßiger Laufzeit-Fehler 424 Internetabfrage
26.06.2017 18:05:03
Matthias
Hallo Marco! Also hatte auch ab und an das Problem, dass der IE plötzlich nicht mehr wollte. Bei mir hat geholfen wenn ich nach jedem .click nochmal gewartet habe, bis er fertig mit laden war. Also so was hier dann noch einfügen:
Do: Loop Until ie.document.ReadyState = "complete"
Als unsere Verbindung dann noch langsamer wurde, habe ich dann sogar mal mit Application.wait gearbeitet, dauert dann aber und sollte bei dir nicht erforderlich sein.
Ansonsten sollte bei dir kein Fehler drin sein. LEdiglich die Schleife über die Links könntest du kürzen. Da du ja nur beim ersten Link den Text kopierst, könnte danach ein exit for rein. Die anderen Links brauchst du ja nicht. VG
Anzeige
AW: Unregelmäß. Laufzeit-Fehler 424 Internetabfr.
26.06.2017 23:04:34
firmus
Hi Marco,
habe deinen Code mal durchgetestet.
Aus meiner Sicht ist es ein reines Timingproblem.
Wenn der errcode 424 bei "ie.document.getElementById("form-type").Value = "3" " auftritt, und du nach ein paar Sekunden per F8 im Debugmode weitermachst (oder per F5) gleich weiterlaufen läßt, klappt der Rest meist.
Mit F5 kann es bei "Set my_data = ie.document.getElementById" nochmals zu einem Fehler (errcode=70) kommen.
Wenn du dann per Debug diese Zeile wiederholen läßt klappt der Rest.
Ich kann mich deshalb nur der Empfehlung mit der Verzögerung anschließen - ODER
du arbeitest mit ON ERROR RESUME NEXT, und bearbeitest die Fehlerbedingungen.
Dieses Fehlverhalten ist sehr gut reproduzierbar.
Gruß
Firmus
Anzeige
AW: Unregelmäß. Laufzeit-Fehler 424 Internetabfr.
27.06.2017 11:29:29
Marco
Hallo Matthias, hallo firmus,
vielen Dank für die Tipps. Ich habe an zwei Stellen noch Do: Loop Until ie.document.ReadyState = "complete" eingefügt, seitdem läuft es bisher sehr störungsfrei.
Danke nochmal.
SG Marco

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige