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.
<HTML>
<HEAD>
<TITLE> Testpagina </TITLE>
<SCRIPT language="javascript">
function voegtoeRij(TabelID) {
var table = document.getElementById(TabelID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
cell1.innerHTML = document.getElementById("Voornaam").value;
var cell2 = row.insertCell(1);
cell2.innerHTML = document.getElementById("Achternaam").value;
var cell3 = row.insertCell(2);
cell3.innerHTML = document.getElementById("Telefoon").value;
var cell4 = row.insertCell(3);
cell4.innerHTML = document.getElementById("Email").value;
}
</SCRIPT>
</HEAD>
<BODY>
<form>
<label for="Voornaam">Voornaam</label>
<input type="text" id="Voornaam" value=""></input>
<label for="Voornaam">Achternaam</label>
<input type="text" id="Achternaam" value=""></input>
<label for="Voornaam">Telefoon</label>
<input type="text" id="Telefoon" value=""></input>
<label for="Voornaam">Email</label>
<input type="text" id="Email" value=""></input>
<input type="button" value="Verzenden" id="Verzenden" onclick="voegtoeRij('Tabel')" />
</form>
<table border="1" id="Tabel">
<tr>
<th align="left">Voornaam</th>
<th align="left">Achternaam</th>
<th align="left">Telefoon</th>
<th align="left">Email</th>
</tr>
</table>
</BODY>
</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.
'-----------------------------------------------------------------------------------------------------------------------
' Auteur : pascalterheege.nl
' Datum : 3-8-2018
' Object : modUpload
' Doel : excel gegevens uploaden naar webformulier
' Bronnen : https://www.automateexcel.com/vba/automate-internet-explorer-ie-using/
' : https://www.wiseowl.co.uk/blog/s393/scrape-website-html.htm
'-----------------------------------------------------------------------------------------------------------------------
Option Explicit
Public Const URL = "https://pascalterheege.nl/wp-content/uploads/office/blog/xls/uploaden/index.php"
Sub Uploaden()
' Internet explorer
Dim IE As Object
Dim item
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate URL
End With
Wachten IE
' Excel
Dim Bereik As Range
Dim r As Integer
Set Bereik = ActiveSheet.UsedRange
For r = 2 To Bereik.Rows.Count
' Uploaden
With IE.document
.getElementById("Voornaam").Value = Bereik.Cells(r, 1).Value
.getElementById("Achternaam").Value = Bereik.Cells(r, 2).Value
.getElementById("Telefoon").Value = Bereik.Cells(r, 3).Value
.getElementById("Email").Value = Bereik.Cells(r, 4).Value
.getElementById("Verzenden").Click
End With
Wachten IE
Next r
End Sub
Sub Wachten(IE As Object)
Do While IE.ReadyState <> 4 Or IE.Busy: DoEvents: Loop
End 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.

