Oder so ;-)
07.01.2020 21:34:50
Zwenn
Ist nur der Machbarkeitsnachweis, da nicht bekannt ist, was der TE eigentlich machen will.
Sub KreditKartenWechselKurseHolen()
Dim browser As Object
Dim url As String
Dim knotenInput As Object
Dim knotenDropdown As Object
Dim knotenKalender As Object
Dim knotenEven As Object
Dim knotenOdd As Object
Dim knotenAlleZellen As Object
Dim knotenEineZelle As Object
Dim htmlZeile As Long
Dim zeile As Long
Dim spalte As Long
'Start der Ausgabe in der Excel Tabelle
zeile = 2
spalte = 1
url = "https://misc.firstdata.eu/CurrencyCalculator/fremdwaehrungskurse/calendar"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Pauschal beide Haken in Checkboxen für Kreditkarten setzen
'Das sind die input-Tags mit den Indizes 2 und 3 in der NodeCollection
Set knotenInput = browser.document.getElementsByTagName("input")
knotenInput(2).Checked = True
knotenInput(3).Checked = True
'Währung in Dropdown wählen
'Hier exemplarisch Australische Dollar
Set knotenDropdown = browser.document.getElementByID("Waehrung")
knotenDropdown.selectedIndex = 10 'Australische Dollar
'Tag(e) im angezeigten Kalendermonat setzen
'Allen auswählbaren Tagen sind Links hinterlegt
'Erster Link = der 1. des Monats
'Hier exemplarisch der 1. und 6.
'Man kann auch durch die Monate navigieren,
'was hier aber weggelassen wurde
Set knotenKalender = browser.document.getElementsByClassName("m1 calbody")(0) _
.getElementsByTagName("a")
knotenKalender(0).Click
knotenKalender(5).Click
'Submit Button anklicken
'Ist das input-Tag mit dem index 4
knotenInput(4).Click
'Manuelle Pause, damit die Ergebnisseite komplett geladen wird
Application.Wait (Now + TimeSerial(0, 0, 3))
'Inhalt der Ergebnistabelle ab Zelle A1 in der Tabelle ausgeben,
'aus der das Makro getsartet wurde
'Die Werte stehen in als gerade und ungerade gekennzeichneten Zeilen
Set knotenEven = browser.document.getElementsByClassName("even")
Set knotenOdd = browser.document.getElementsByClassName("odd")
'Alle Zeilen der HTML Tabelle ausgeben
For htmlZeile = 0 To knotenEven.Length - 1
Set knotenAlleZellen = knotenEven(htmlZeile).getElementsByTagName("td")
For Each knotenEineZelle In knotenAlleZellen
Cells(zeile, spalte).Value = Trim(knotenEineZelle.innertext)
spalte = spalte + 1
Next knotenEineZelle
zeile = zeile + 1
spalte = 1
'Wenn es mindestens eine ungerade Zeile gibt
If Not knotenOdd Is Nothing Then
'Prüfen ob es noch eine gibt
If knotenOdd.Length > htmlZeile Then
Set knotenAlleZellen = knotenOdd(htmlZeile).getElementsByTagName("td")
For Each knotenEineZelle In knotenAlleZellen
Cells(zeile, spalte).Value = Trim(knotenEineZelle.innertext)
spalte = spalte + 1
Next knotenEineZelle
zeile = zeile + 1
spalte = 1
End If
End If
Next htmlZeile
End Sub