• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Uitlezen dagtemperatuur en zonne-uren van het KNMI

Status
Niet open voor verdere reacties.

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
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!
 

Bijlagen

  • 1733301627973.png
    1733301627973.png
    1,7 KB · Weergaven: 5
wat je fout doet? Je plaatst geen voorbeeldbestandje.
 
Ik had al zoiets op de plak liggen.
Iets aangepast waaronder naar meetstation Deelen.
Het geheel bewerkstelligd met power query.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan