Skip to main content

Hoe een tekstvak automatisch aan te vullen tijdens het typen in Excel?

Author: Siluvia Last Modified: 2025-05-29

Standaard kan Excel onthouden wat u hebt ingevoerd in cellen van het huidige werkblad en deze inhoud automatisch aanvullen de volgende keer dat u een gerelateerde beginletter typt in een nieuwe cel. Als u echter wilt dat alle inhoud die u in het werkblad hebt ingevoerd automatisch wordt aangevuld in een tekstvak (ActiveX Control), hoe kunt u dit dan doen? Dit artikel biedt een VBA-methode om u te helpen een tekstvak automatisch aan te vullen wanneer u een beginletter typt.

Een tekstvak automatisch aanvullen tijdens het typen met VBA-code


Een tekstvak automatisch aanvullen tijdens het typen met VBA-code

Volg de onderstaande stappen om een tekstvak automatisch aan te vullen wanneer u een beginletter typt in het tekstvak.

1. Voeg een tekstvak in door te klikken op Ontwikkelaar > Invoegen > Tekstvak (ActiveX Control). Zie screenshot:

click to insert Text Box

2. Klik vervolgens op Ontwikkelaar > Invoegen > Keuzelijst (ActiveX Control) om een keuzelijst in het huidige werkblad in te voegen. Zie screenshot:

click to insert List Box

3. Klik met de rechtermuisknop op het tabblad van het werkblad, en klik vervolgens op Weergave Code in het contextmenu zoals weergegeven in de onderstaande screenshot.

click View Code from right click menu

4. Kopieer en plak in het venster Microsoft Visual Basic for Applications de onderstaande VBA-code in het Code-venster. Klik vervolgens op Tools > References, en vink het vakje Microsoft Scripting Runtime aan in het dialoogvenster References – VBAProject. Zie screenshot:

VBA-code: Een tekstvak automatisch aanvullen tijdens het typen

Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xVal As String
    On Error Resume Next
    If IsNumeric(Target.Value) Then
        xVal = Str(Target.Value)
    Else
        xVal = Target.Value
    End If
    If xVal <> "" Then
        If Not xDic.Exists(xVal) Then
            xDic.Add xVal, xVal
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    If xRg Is Nothing Then
        Set xRg = ActiveSheet.UsedRange
    End If
    Me.ListBox1.Visible = False
    xDic.RemoveAll
    With Me.ListBox1
        For I = 1 To xRg.Count
            xStr = xRg(I).Value
            If xStr <> "" Then
                .AddItem xStr
                If Not xDic.Exists(xStr) Then
                    xDic.Add xStr, xStr
                End If
            End If
        Next
    End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        .Top = Me.TextBox1.Top
        .Left = Me.TextBox1.Left + Me.TextBox1.Width
        .Width = Me.TextBox1.Width
    End With
    TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    If xRg Is Nothing Then Exit Sub
    Me.ListBox1.Clear
    xStr = xTextBox.Value
    If xStr = "" Then
        Me.ListBox1.Visible = False
        Application.EnableEvents = True
        Exit Sub
    End If
    For I = 0 To UBound(xDic.Items)
        If Left(xDic.Items(I), Len(xStr)) = xStr Then
            Me.ListBox1.AddItem xDic.Items(I)
        End If
    Next
    Me.ListBox1.Visible = True
    If Me.ListBox1.ListCount > 0 Then
        With xTextBox
            .Value = Me.ListBox1.List(0)
            .SelStart = Len(xStr)
            .SelLength = Len(Me.ListBox1.List(0))
        End With
    End If
    Me.ListBox1.Activate
    Me.ListBox1.Selected(0) = True
    Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Me.TextBox1.Value = Me.ListBox1.Value
    End If
End Sub

go to References dialog box and check Microsoft Scripting Runtime

Opmerking: In de code zijn ListBox1 en Textbox1 de namen van de keuzelijst en het tekstvak die u in uw werkblad hebt ingevoegd.

5. Druk op de toetsen Alt + Q om het venster Microsoft Visual Basic for Applications te sluiten.

6. Schakel de Ontwerpmodus uit door te klikken op Ontwikkelaar > Ontwerpmodus in het werkblad.

7. Ga nu naar een ander werkblad en ga vervolgens terug naar het vorige werkblad om de VBA-code te activeren.

Vanaf nu. Wanneer u een beginletter invoert in het tekstvak, worden alle teksten die beginnen met die letter die u in het werkblad hebt ingevoerd, weergegeven in de keuzelijst die zich aan de rechterkant van het tekstvak bevindt. Dubbelklik op degene die u nodig heeft om deze in het tekstvak in te voeren. Zie screenshot:

When entering an initial letter into the textbox, all texts which begin with that letter will be listed

Opmerking: U kunt de pijl-omhoog- of pijl-omlaag-toets gebruiken om tussen alle automatisch aan te vullen teksten in de keuzelijst te bewegen, en druk vervolgens op de Enter-toets om de gewenste tekst in het tekstvak in te voeren.



Gerelateerde artikelen:

Beste Office-productiviteitstools

🤖 Kutools AI Assistent: Breng een revolutie teweeg in data-analyse Methode: Intelligente uitvoering |Code genereren |Aangepaste formules maken |Gegevens analyseren en grafieken genereren |Kutools-functies gebruiken
Populaire functies: Dubbele waarden markeren, markeren of identificeren | Verwijder lege rijen | Kolommen of cellen samenvoegen zonder gegevensverlies | Afronden ...
Super ZOEKEN: VLookup met meerdere criteria | VLookup met meerdere waarden | Meervoudig-blad opzoeken | Fuzzy Match ...
Geavanceerde keuzelijst: Snel keuzelijst maken | Afhankelijke keuzelijst | Meervoudige selectie keuzelijst ...
Kolombeheer: Specifiek aantal kolommen toevoegen | Kolommen verplaatsen | Zichtbaarheid van verborgen kolommen wisselen | Bereik & kolommen vergelijken ...
Uitgelichte functies: Rasterfocus | Ontwerpweergave | Verbeterde formulebalk | Werkboek- & Werkbladbeheer | AutoTekstbibliotheek | Datumkiezer | Gegevens samenvoegen | Cellen coderen/decoderen | E-mail verzenden per lijst | Superfilter | Speciaal filter (filter cellen met vetgedrukt/cursief/doorhalen...) ...
Top15 toolsets:12 Teksttools (Tekst toevoegen, Specifieke tekens verwijderen, ...) |50+ Grafiek type (Gantt-diagram, ...) |40+ Praktische formules (Leeftijd berekenen op basis van geboortedatum, ...) |19 Invoegtools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...) | 12 Conversietools (Omzetten naar woorden, Valutaconversie, ...) | 7 Samenvoeg- & Opsplitstools (Geavanceerd samenvoegen van rijen, Cellen splitsen, ...) | ... en meer

Versterk je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die je het meest nodig hebt...


Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!