• 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.

data van internet in excel importeren

Status
Niet open voor verdere reacties.
Code:
Option Explicit

Private Sub CommandButton1_Click()
    
    Dim objHTML As Object
    Dim objHTTP As Object
    Dim strUrl As String
    Dim vntRange As Variant
    
    On Error Resume Next
    
    strUrl = "http://meb.elia.be/imbalance_new.asp?lang=E" 'dit is de url met de gegevens,
    
    DeleteUrlCacheEntry (strUrl) 'cache wissen!!!
              
    Set objHTTP = CreateObject("MSXML2.XMLHTTP")
    Set objHTML = CreateObject("HTMLFILE")
    
    Worksheets("Current system imbalance").Columns("A").ClearContents 'kolom wissen
    
    With objHTTP
        .Open "GET", strUrl, False 'am_2102
        .send
        objHTML.body.innerHTML = .responsetext
        vntRange = WorksheetFunction.Transpose(Split(objHTML.body.innerText, vbCrLf)) 'van html naar tekst en opdelen in regels
        Worksheets("Current system imbalance").Range("A1").Resize(UBound(vntRange)) = vntRange
    End With
    
    Worksheets("Current system imbalance").Columns("A").AutoFit 'autofit
    
    Set objHTTP = Nothing
    Set objHTML = Nothing
End Sub

en in module1
Code:
Public Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

met firebug (tooltje voor firefox) ben ik erachter gekomen dat http://meb.elia.be/imbalance_new.asp?lang=E de deelsite is met de gegevens

elke keer als je het bestand opnieuw opent en op de knop klikt worden de gegevens geupdated

DeleteUrlCacheEntry zou dat ook moeten doen als het bestand niet elke keer wordt geopend maar op de knop wordt geklikt

aan jou de taak om de komende tijd te controleren als de gegevens op de juiste manier worden geupdated en het ook een hele dag goed gaat
ik hoor graag van je zodat wij allen ook wat leren van sites die tussentijds geupdated worden
 

Bijlagen

  • helpmij stefanvc elia current system imbalance.xls
    43,5 KB · Weergaven: 154
ik heb dit nog verder aan het proberen geweest
Heb de functie van de knop in een macro gezet om deze automatisch om de minuut te herhalen.
Wanneer er nu iets fout gaat op de website (elia) krijg ik foutmelding en kan ik kiezen voor beëindigen of fout opsporen.
Ook krijg ik in de excel ipv van de waarde een melding : "we are sorry .........enz" , wat aangeeft dat er nog wel internetverbinding is (is volgens mijn een melding van de website)
Het gevolg is wel dat de macro stopt. als dan de foutmelding wegklik en de macro terug start gaat alles terug goed.
Op een andere Pc heb ik ook nog een andere tabel (ook van elia site) die wel werkt met gegevensverbinding van excel.
Hierop zit ook een macro om dit te herhalen.

Op de twee Pc lopen de tabellen vast op het hetzelfde tijdstip ??
Heb vrijdag al mijn Adsl modem vervangen omdat ik dacht dat de verbinding soms wegviel.

Kan je dit tegen gaan door te zeggen dat hij gewoon moet verder gaan bij een error
 
dat doet de regel
Code:
On Error Resume Next
deze staat aan het begin
ik weet niet hoe jij de timer hebt ingebouwd daar kan ook de fout zitten
 
heb de fout gevonden , kwam doordat ik in die macro ook naar de waardes keek , en als de website even uit lag gaf dit #waarde en dit gaf dan een fout in mijn macro
ik heb nog wel een ander probleem :
wil ook de tabel op volgende website gebruiken : http://www.elia.be/nl/grid-data/balancing/onevenwichtsprijs
namelijk de tabel met kwartierwaardes.
Als ik dit aanpas in uw script dan lukt dit maar dan komen alle waardes achter elkaar te staan in één cel.
volgens mij komt dit door de volgende regel in uw script :
objHTML.body.innerHTML = .responsetext
maar weet niet hoe ik dit moet aanpassen.

alvast bedankt voor alle moeite
 
het gaat al via de gewone webquery
 
dat heb ik ook geprobeerd , inderdaad dat werkt , maar als de verbinding dan even wegvalt, krijg je een foutmelding, en die krijg ik niet weg met "on error resume next"
heb dat geprobeerd met het oproepen van de webquery vanuit een macro (dus automatisch vernieuwen afgezet)
maar ophalen stopt altijd op die foutmelding.
 
bedoel je dat je liever wat oudere (paar minuten) gegevens wil hebben dan helemaal geen gegevens
 
dat de gegevens iets ouder zijn maakt niet zo veel uit en mag ook even overslaan,
maar het programma zou niet mogen stoppen.
alvast bedankt
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan