In één van de vorige artikelen (Aandelenkoersen ophalen met webquery) hebben we gekeken hoe we met een webquery gegevens automatisch kunnen downloaden van een webpagina.
De query die we toen gemaakt hebben, haalt de slotkoersen van het laatste jaar van KPN op van de site www.behr.nl. Maar wat nu als je niet de koersen van KPN, maar die van Ahold of Aegon wilt ophalen? Moeten we voor ieder fonds een aparte query bouwen? Gelukkig niet. We kunnen de webquery dynamisch maken door er parameters aan toe te voegen.
Om dit te kunnen moeten we de huidige querydefinitie opslaan in een zgn. ‘iqy’ bestand. Hiervoor selecteren we cel A4 (of één van de andere cellen waarin de resultaten van de query staan) en klikken op de rechtermuisknop. In het contextmenu dat dan verschijnt kiezen we voor de optie ‘Query bewerken…’.
Excel laat dan weer de mini webbrowser zien, die we gebruikt hebben om de webquery mee te maken. Hier kiezen we voor de optie webquery opslaan.
Je krijgt dan het standaard ‘opslaan als’ scherm en kunt aangeven in welke map je het webquery bestand (met extensie iqy) wilt opslaan. Let goed op waar je het bestand opslaat. Excel stelt zelf een vrij exotische locatie voor (‘C:\Users\Username\AppData\Roaming\Microsoft\Query’s ‘ in Excel 2007 icm Vista) en de kans is groot dat je de query vervolgens niet meer terugvindt. Kies daarom voor een lokatie die makkelijk te onthouden is.
Nu wordt het tijd om eens beter naar de site van Behr te kijken. Hieronder zie je de url’s voor KPN, Heineken, Ahold en Aegon (ik kies steeds voor de optie : ‘kale file met de slotkoersen’)
- http://www.behr.nl/Beurs/Slotkoersen/slotkoersen.php?fd=kpn
- http://www.behr.nl/Beurs/Slotkoersen/slotkoersen.php?fd=heineken
- http://www.behr.nl/Beurs/Slotkoersen/slotkoersen.php?fd=ahold
- http://www.behr.nl/Beurs/Slotkoersen/slotkoersen.php?fd=aegon
Je ziet dat de structuur van de url steeds gelijk is en dat alleen de fondsnaam verschilt. In deel II van dit artikel (Een webquery dynamisch maken met parameters) zal ik laten zien hoe we er voor kunnen zorgen dat Excel zelf de fondsnaam invult.