Excel naar webformulier


In dit artikel wordt gedemonstreerd hoe gegevens vanuit Excel geautomatiseerd naar een webformulier geupload en verzonden kunnen worden. Dit proces geschiedt met behulp van de programmeertaal VBA. Het grote voordeel van deze automatiseringsslag is tijdwinst en het uitsluiten van invoerfouten.

Ten behoeve van dit artikel is deze website met een webformulier gemaakt. De toepassing in Excel kan hier gedownload worden om te testen.

De website met het webformulier is als volgt opgebouwd.

01<HTML>
02<HEAD>
03    <TITLE> Testpagina </TITLE>
04    <SCRIPT language="javascript">
05         
06        function voegtoeRij(TabelID) {
07 
08            var table = document.getElementById(TabelID);
09 
10            var rowCount = table.rows.length;
11            var row = table.insertRow(rowCount);
12 
13            var cell1 = row.insertCell(0);
14            cell1.innerHTML = document.getElementById("Voornaam").value;
15 
16            var cell2 = row.insertCell(1);
17            cell2.innerHTML = document.getElementById("Achternaam").value;
18 
19            var cell3 = row.insertCell(2);
20            cell3.innerHTML = document.getElementById("Telefoon").value;
21             
22            var cell4 = row.insertCell(3);
23            cell4.innerHTML = document.getElementById("Email").value;
24 
25        }
26 
27    </SCRIPT>
28</HEAD>
29<BODY>
30 
31<form>
32    <label for="Voornaam">Voornaam</label>
33    <input type="text" id="Voornaam" value=""></input>
34    <label for="Voornaam">Achternaam</label>
35    <input type="text" id="Achternaam" value=""></input>
36    <label for="Voornaam">Telefoon</label>
37    <input type="text" id="Telefoon" value=""></input>
38    <label for="Voornaam">Email</label>
39    <input type="text" id="Email" value=""></input>
40    <input type="button" value="Verzenden" id="Verzenden" onclick="voegtoeRij('Tabel')" />
41</form>
42 
43<table border="1" id="Tabel">
44    <tr>
45        <th align="left">Voornaam</th>
46        <th align="left">Achternaam</th>
47        <th align="left">Telefoon</th>
48        <th align="left">Email</th>
49    </tr>
50</table>
51 
52</BODY>
53</HTML>

Het belangrijkst is het webformulier. De velden hebben respectievelijk de volgende id's: Voornaam, Achternaam, Telefoon en Email. De button heeft als id Verzenden.

Merk op dat deze id's ook terugkomen in de onderstaande VBA procedure.

01'-----------------------------------------------------------------------------------------------------------------------
02' Auteur        : pascalterheege.nl
03' Datum         : 3-8-2018
04' Object        : modUpload
05' Doel          : excel gegevens uploaden naar webformulier
08'-----------------------------------------------------------------------------------------------------------------------
09 
10Option Explicit
11 
13Sub Uploaden()
14 
15'   Internet explorer
16    Dim IE As Object
17    Dim item
18 
19    Set IE = CreateObject("InternetExplorer.Application")
20  
21    With IE
22        .Visible = True
23        .Navigate URL
24    End With
25 
26    Wachten IE
27     
28'   Excel
29    Dim Bereik As Range
30    Dim r As Integer
31     
32    Set Bereik = ActiveSheet.UsedRange
33    
34    For r = 2 To Bereik.Rows.Count
35     
36'       Uploaden
37        With IE.document
38            .getElementById("Voornaam").Value = Bereik.Cells(r, 1).Value
39            .getElementById("Achternaam").Value = Bereik.Cells(r, 2).Value
40            .getElementById("Telefoon").Value = Bereik.Cells(r, 3).Value
41            .getElementById("Email").Value = Bereik.Cells(r, 4).Value
42            .getElementById("Verzenden").Click
43        End With
44         
45        Wachten IE
46 
47    Next r
48 
49End Sub
50 
51Sub Wachten(IE As Object)
52 
53    Do While IE.ReadyState <> 4 Or IE.Busy: DoEvents: Loop
54 
55End Sub

De bovenstaande procedure leest dus alle waarden in Excel uit en plaatst deze telkens in de invoervelden. Tot slot wordt er automatisch op de knop [Verzenden] gedrukt.