für die Abfrage von Daten aus dem Internet verwende ich eine Lösung, die mir im Thread "URL Download von generierter Datei" bereits zur Verfügung gestellt wurde. Sie funktioniert einwandfrei. Nun will ich von der selben Seite (https://www.regelleistung.net/ext/data/) weitere Daten (z.B.: IGCC -> Austausch_Deutschland) herunterziehen mit selbiger Methode, ich müsste einzig die Werte für getelementsbyid ändern. Das Problem: Wenn die Kategorie "IGCC" gewählt wird, wird das Sub-Auswahlmenü nicht angepasst, wodurch die Fehlermeldung '424-Object erforderlich' auftritt. Ich habe zusätzliche Stopps eingebaut, um der Seite genügend Zeit zum Laden zu geben, half aber leider nicht.
Sub IGCCquant()
Dim wbAE As String
Dim wkshAE As String
wbAE = ActiveWorkbook.Name
wkshAE = ActiveSheet.Name
'Tabelle erstellen
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
lZeile = 1: lSpalte = 1
Startdate = CDate(myDate) 'Startdatum
anzahlTage = 1 'Anzahl der Tage anpassen
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.regelleistung.net/ext/data/"
While ie.Busy
DoEvents
Wend
Do: Loop Until ie.document.readyState = "complete"
ie.document.getElementById("form-tso").Value = "11" 'IGCC
Do: Loop Until ie.document.readyState = "complete" 'zusätzlicher Stopp
Application.Wait Now + TimeSerial(0, 0, 2) 'zusätzlicher Stopp
ie.document.getElementById("form-type").Value = "IN_DE_VERMIEDENE_SRL" 'Austausch Deutschland
For i = 0 To anzahlTage - 1
ie.document.getElementById("form-from-date").Value = CStr(CDate(Startdate + i))
ie.document.getElementById("submit-button").Click
Do: Loop Until ie.document.readyState = "complete"
Set daten = ie.document.getElementById("data-table")
lZeile = 1
For Each zeile In daten.Rows
For Each zelle In zeile.Cells
If lSpalte = 4 Or lSpalte = 5 Then
Workbooks(wbAE).Worksheets(wkshAE).Cells(lZeile + 5, lSpalte + 10) = Format(zelle. _
_
innerText, "0000")
End If
lSpalte = lSpalte + 1
Next
lSpalte = 1
lZeile = lZeile + 1
Next
Next
ie.Quit
End Sub