In dit voorbeeld maakt u een formulier met twee lijstobjecten; zie het voorbeeld hiernaast. Onderaan deze pagina vindt u enkele mogelijke uitbreidingen op deze oefening.

1. Start Excel. Typ in de cellen A1:E1 de werelddelen en in de respectievelijke kolommen de verschillende landen.  Dus, bijvoorbeeld in de cellen A2:A5 staan de landen Algerije, Libië, Nigeria en Egypte. Geef eventueel een naam aan deze gebieden.  In het voorbeeld is de naam 'werelddelen' gebruikt voor het gebied A1:E1. Open de VBA editor en voeg een UserForm in met het menu Invoegen.

2. Teken de besturingselementen op het formulier. Zie het voorbeeld hierboven. U hebt een combobox (voor de werelddelen) en een keuzelijst (voor de landen) nodig. Eventueel kunt u ook nog een bijschrift bijvoegen met de opdracht.

3. Stel de eigenschappen in van de besturingsobjecten. Geef aan alle objecten een naam (behalve eventueel het bijschrift). In het voorbeeld zijn de volgende namen gekozen: frmLanden, cmbWerelddelen en lstLanden. De eerste naam is voor het formulier zelf en is bijvoorbeeld zichtbaar in de Projectverkenner. Stel ook de Caption in voor het bijschrift. Eventueel kunt u ook de eigenschappen instellen voor de breedte, hoogte en positie van de besturingselementen. Gebruik hiervoor de eigenschappen Width, Height, Left en Top.

4. Schrijf de VBA-code voor de Initialize-gebeurtenis van het formulier. Deze gebeurtenis treedt op als het formulier voor de eerste maal wordt geladen. Dubbelklik hiervoor op het formulier. Controleer in het Object en Procedure vak dat u het juiste object en event hebt geselecteerd. Schrijf de volgende code:

Private Sub UserForm_Initialize()
  Dim c As Range
  For Each c In Application.Range("werelddelen")
    Me.cmbWerelddeel.AddItem c.Value
  Next c
  Me.cmbWerelddeel.ListIndex = 0
End Sub
  

Schrijf daarna de code voor de Click-event van de combobox. Eerst moet de inhoud van de keuzelijst gewist worden. Daarna moet die terug opgevuld worden met de landen van het gekozen werelddeel.

Private Sub cmbWerelddeel_Click()
  Dim tb As Range, c As Range
  
  Me.lstLanden.Clear
  Select Case Me.cmbWerelddeel.Value
    Case "Europa": Set tb = Range("europa")
    Case "Azië": Set tb = Range("azie")
    Case "Amerika": Set tb = Range("amerika")
    Case "Afrika": Set tb = Range("afrika")
    Case "Oceanië": Set tb = Range("oceanie")
  End Select
    
  For Each c In tb
    Me.lstLanden.AddItem c.Value
  Next c
End Sub

5. Schrijf de VBA-code om het formulier te tonen. Voeg hiervoor een module toe aan het project en schrijf de volgende procedure.

Sub toonFormulier()
  frmAfbetaling.Show
End Sub
 

6. Test het formulier uit en controleer het resultaat. U kunt een mogelijke oplossing bekijken in dit Excel werkboek.