Gert Bouwmeeste
Verenigingslid
- Lid geworden
- 28 nov 2007
- Berichten
- 827
Goedemorgen,
Ik probeer met een macro de daggegevens "Gemiddelde Temperatuur" en "Zonne-uren" van het KNMI uit te lezen.
Ik heb deze macro gevonden
Deze regel
Temperatuur = Kolommen(2).innerText ' Pas de index aan naar de juiste kolom
geeft een foutmelding "Fout 404 tijdens uitvoering: Object vereist"
Wat doe ik fout?
Er hoort overigens geen Excel-bestand bij. DIt is een probeersel op een leeg Excel-bestand.
Dank je wel!
Ik probeer met een macro de daggegevens "Gemiddelde Temperatuur" en "Zonne-uren" van het KNMI uit te lezen.
Ik heb deze macro gevonden
Code:
Sub HaalKNMIGegevensOp()
Dim Http As Object
Dim HTML As Object
Dim URL As String
Dim Temperatuur As String
Dim ZonneUren As String
Dim Tabel As Object
Dim Rijen As Object
Dim Rij As Object
Dim Kolommen As Object
' URL van het KNMI met historische gegevens
URL = "https://www.knmi.nl/nederland-nu/klimatologie/uurgegevens?stns=275"
' Maak HTTP-object aan
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET", URL, False
Http.Send
' Controleer of de pagina geladen is
If Http.Status <> 200 Then
MsgBox "Kan de gegevens niet ophalen. Controleer de internetverbinding of de URL.", vbCritical
Exit Sub
End If
' Parse de HTML-content
Set HTML = CreateObject("HTMLFILE")
HTML.body.innerHTML = Http.responseText
' Zoek de tabel met gegevens
Set Tabel = HTML.getElementsByTagName("table")(0) ' Verander het indexnummer als nodig
If Tabel Is Nothing Then
MsgBox "Geen gegevens gevonden op de website.", vbCritical
Exit Sub
End If
' Haal de gegevens op
Set Rijen = Tabel.getElementsByTagName("tr")
If Rijen.Length > 1 Then
' Eerste gegevensrij (je kunt dit aanpassen afhankelijk van de structuur)
Set Rij = Rijen(1)
Set Kolommen = Rij.getElementsByTagName("td")
' Gemiddelde dagtemperatuur (aanpassen aan de juiste kolom)
Temperatuur = Kolommen(2).innerText ' Pas de index aan naar de juiste kolom
ZonneUren = Kolommen(5).innerText ' Pas de index aan naar de juiste kolom
Else
MsgBox "Geen gegevens gevonden.", vbCritical
Exit Sub
End If
' Plaats de gegevens in de Excel-cellen
With ThisWorkbook.Sheets(1)
.Range("A1").Value = "Gemiddelde dagtemperatuur:"
.Range("B1").Value = Temperatuur
.Range("A2").Value = "Totale zonne-uren:"
.Range("B2").Value = ZonneUren
End With
MsgBox "Gegevens succesvol opgehaald!", vbInformation
End Sub
Deze regel
Temperatuur = Kolommen(2).innerText ' Pas de index aan naar de juiste kolom
geeft een foutmelding "Fout 404 tijdens uitvoering: Object vereist"
Wat doe ik fout?
Er hoort overigens geen Excel-bestand bij. DIt is een probeersel op een leeg Excel-bestand.
Dank je wel!