Note: The other languages of the website are Google-translated. Back to English
Inloggen  \/ 
x
or
x
Registreer  \/ 
x

or

Hoe tekstvak vullen op basis van combobox-selectie op UserForm in Excel?

Stel dat een tabel een kolom met een naam en een notenbalknummer bevat, zoals onderstaand screenshot. Nu moet u een gebruikersformulier maken dat is ingesloten met een keuzelijst met invoervak ​​waarin alle namen worden verzameld en een tekstvak dat het overeenkomstige personeelsnummer zal vullen bij het selecteren van de naam in de keuzelijst met invoervak. De methode in dit artikel kan u helpen om het op te lossen.

Vul tekstvak in op basis van combobox-selectie op Userform met VBA


Vul tekstvak in op basis van combobox-selectie op Userform met VBA

Ga als volgt te werk om het tekstvak te vullen met de bijbehorende waarde op basis van de combobox-selectie op het gebruikersformulier.

1. druk de anders + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. In de Microsoft Visual Basic voor toepassingen venster klikt Invoegen > Gebruikersformulier. Zie screenshot:

3. Voeg vervolgens een keuzelijst met invoervak ​​en een besturingselement Tekstvak in het gemaakte gebruikersformulier in, zoals onderstaand screenshot.

4. Klik met de rechtermuisknop op een lege ruimte van het gebruikersformulier en klik vervolgens op Bekijk code vanuit het contextmenu. Zie screenshot:

5. Kopieer en plak de onderstaande VBA-code in het openingsvenster Userform (Code) om het origineel te vervangen.

VBA-code: vul tekstvak in op basis van combobox-selectie op Userform

Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Sheet5").Range("A2:B8")
    Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub

Opmerking:: In de code is A2: B2 het bereik dat de waarden bevat die u afzonderlijk in zowel de Userform-keuzelijst als het tekstvak wilt invullen. En Sheet5 is de naam van het werkblad dat het gegevensbereik bevat. Wijzig ze indien nodig.

6. druk de anders + Q toetsen om het Microsoft Visual Basic voor toepassingen venster.

7. klikken Ontwikkelaar > Invoegen > Commandoknop (ActiveX-besturingselement) om een ​​opdrachtknop in het werkblad in te voegen.

8. Klik met de rechtermuisknop op de bladtab en selecteer Bekijk code vanuit het rechtsklikmenu. Kopieer en plak vervolgens VBA-code in het codevenster.

VBA-code: gebruikersformulier weergeven

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
    UserForm1.Show
End Sub

9. Schakel de ontwerpmodus in de werkmap uit.

Klik op de opdrachtknop om het opgegeven gebruikersformulier te openen. Vervolgens kunt u zien dat alle namen zijn verzameld in de keuzelijst met invoervak. Bij het selecteren van een naam uit de keuzelijst met invoervak, wordt het overeenkomstige personeelsnummer automatisch in het tekstvak ingevuld, zoals onderstaand screenshot.


Gerelateerde artikelen:


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken voor u!
officetab onderkant
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jimmy · 2 months ago
    can the same be don on excel sheet? instead of userform? i am using sheet not userform
  • To post as a guest, your comment is unpublished.
    Everton · 2 years ago
    alguem poderia me ajudar estou tentando carregar a combobox e puxar informações para text box so que esta dando erro 381

    Private Sub ComboNome_Emissor_Change()
    TextArea.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 1)
    TextTreinamento_PT.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 3)
    TextTreinamento_EC.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 5)
    TexStatus_Bloqueio.Text = ComboNome_Emissor.List(ComboNome_Emissor.ListIndex, 6)


    End Sub
  • To post as a guest, your comment is unpublished.
    carey.ogola@gmail.com · 3 years ago
    The method is very simple and populates the combo box quite efficiently. However, when I try populating the text box, I get a run-time error '1004': Unable to get the VLookup property of the WorksheetFunction class. Kindly assist with resolving this error.
    • To post as a guest, your comment is unpublished.
      Carla Cox · 1 years ago
      I just tried this code and was running into the same issue. I realized I had the xRg variable inside the UserForm block, so it was not being accessed by my ComboBox function. Maybe others are running into the same issue
    • To post as a guest, your comment is unpublished.
      crystal · 3 years ago
      Hi,
      May I have your Office version? I need the feedback to check for the error.
      Thanks for your comment.
      • To post as a guest, your comment is unpublished.
        hoa tran · 3 years ago
        office 2010 32 bit
        • To post as a guest, your comment is unpublished.
          crystal · 3 years ago
          Good day,
          I have tried the code in Office 2010 32 bit, but no errors occured.
          Please make sure the sheet name and cell range in the first VBA code are the same with your actual sheet name and range.
          Thanks for your comment.
          • To post as a guest, your comment is unpublished.
            Dimal · 2 years ago
            Hi,
            i have same issue with office 2013. Any solution please
            • To post as a guest, your comment is unpublished.
              Olban Noe Izaguirre · 2 years ago
              i have the same problem....
              • To post as a guest, your comment is unpublished.
                Chaylon · 2 years ago
                I too have the same problem
                • To post as a guest, your comment is unpublished.
                  crystal · 2 years ago
                  Hi Chaylon,
                  Have you replaced the sheet name in the below code line with your actual used worksheet name?
                  Set xRg = Worksheets("Sheet5").Range("A2:B8")