KutoolsforOffice — Eén oplossing, vijf krachtige tools.Meer bereiken met minder moeite.

Hoe laat u een tekstvak automatisch aanvullen terwijl u typt in Excel?

AuteurSiluvia Wijzigingsdatum

Standaard onthoudt Excel wat u heeft ingevoerd in cellen van het huidige werkblad en vult die inhoud automatisch aan zodra u de volgende keer een gerelateerde beginletter typt in een nieuwe cel. Maar hoe zorgt u ervoor dat alle inhoud die u in het werkblad hebt ingevoerd, automatisch wordt aangevuld in een tekstvak (ActiveX-besturingselement)? Dit artikel biedt een VBA-methode waarmee een tekstvak automatisch wordt aangevuld terwijl u een beginletter typt.

Laat een tekstvak automatisch aanvullen tijdens het typen met VBA-code


Laat een tekstvak automatisch aanvullen tijdens het typen met VBA-code

Volg onderstaande stappen om een tekstvak automatisch in te vullen zodra u begint met typen.

1. Voeg eerst een tekstvak in door te klikken op Ontwikkelaar > Invoegen > Tekstvak (ActiveX-besturingselement). Zie afbeelding:

klik om een tekstvak in te voegen

2. Klik vervolgens op Ontwikkelaar > Invoegen > Lijstvak (ActiveX-besturingselement) om een lijstvak in te voegen op het huidige werkblad. Zie afbeelding:

klik om een keuzelijst in te voegen

3. Klik met de rechtermuisknop op het bladtabblad en selecteer daarna Code weergeven in het contextmenu, zoals hieronder is weergegeven.

klik op Code weergeven in het rechtermuisknopmenu

4. In het venster Microsoft Visual Basic for Applications kopieert en plakt u de onderstaande VBA-code in het codovenster. Klik vervolgens op Extra > Referenties en vink daarna het vakje Microsoft Scripting Runtime aan in het dialoogvenster Referenties – VBAProject. Zie afbeelding:

VBA-code: Laat 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

ga naar het dialoogvenster Verwijzingen en vink Microsoft Scripting Runtime aan

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

5. Druk op 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 keer vervolgens terug naar het vorige werkblad om de VBA-code te activeren.

Vanaf nu worden, bij het invoeren van een beginletter in het tekstvak, alle teksten die beginnen met die letter en die u in het werkblad hebt ingevoerd, weergegeven in het lijstvak rechts van het tekstvak. Dubbelklik op de gewenste tekst om deze in het tekstvak in te voeren. Zie afbeelding:

Bij het invoeren van een beginletter in het tekstvak worden alle teksten die met die letter beginnen weergegeven

Opmerking: Gebruik de pijltjestoets Omhoog of pijltjestoets Omlaag om te navigeren tussen alle automatisch aangevulde teksten in het lijstvak, en druk daarna op de Enter-toets om de gewenste tekst in het tekstvak in te voeren.



Gerelateerde artikelen:

Beste Office-productiviteitshulpmiddelen

🤖KUTOOLS AI Assistant: Revolutioneer Data-analyse op basis van:Intelligente uitvoering   |  Genereer code|  Maak aangepaste formules  |  Analyseer gegevens en genereer grafieken|  Roep Verbeterde functies aan
Populaire functies:Zoeken, markeren of Dubbele waarden markeren   |  Verwijder lege rijen   |  Kolommen samenvoegen of cellen zonder gegevensverlies   |   Afronden zonder formule...
Super ZOEKEN:VLookup met meerdere criteria  |  VLookup met meerdere waarden  |   VLookup over meerdere werkbladen   |   Fuzzy Match....
Geavanceerde keuzelijst:Snel een keuzelijst maken   |  Afhankelijke keuzelijst   |  Keuzelijst met meervoudige selectie....
Kolombeheerder:Voeg een specifiek aantal kolommen toe|Verplaats kolommen|Wissel zichtbaarheidsstatus van verborgen kolommen|Vergelijk bereiken en kolommen...
Uitgelichte functies:Rasterfocus   |  Ontwerpweergave   |Verbeterde formulebalk   | Werkmap- en bladbeheerder   |  Bronnenbibliotheek(Automatische tekst)|  Datumkiezer   |  Werkbladen samenvoegen  |  Versleutelen/Cellen decoderen   | E-mails verzenden op basis van lijst   |  Superfilter   |   Speciaal filter(Filter cellen met vetgedrukt lettertype/cursief/doorgestreept...) ...
Top 15 gereedschapssets:12 Teksthulpmiddelen(Tekst toevoegen,Specifieke tekens verwijderen, ...)|   50+Grafiektypen(Gantt-diagram, ...)|   40+ Praktische formules(Leeftijd berekenen op basis van geboortedatum, ...)|   19 Invoeghulpmiddelen(QR-code Invoegen,Afbeelding invoegen vanaf pad, ...)|   12 Conversiehulpmiddelen(Omzetten naar woorden,Wisselkoersconversie, ...)|   7 Samenvoegen en splitsenhulpmiddelen(Geavanceerd samenvoegen van rijen,Cellen splitsen, ...)|... en meer
Gebruik Kutools in uw voorkeurstaal – ondersteunt Engels, Spaans, Duits, Frans, Chinees en 40+ andere talen!

Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...


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

  • Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
  • Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!

Alle Kutools-add-ins in één installatieprogramma.

Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.

ExcelWordOutlookTabsPowerPoint
  • Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
  • Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
  • Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
  • 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
  • Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins