VBA ComboBox

Excel VBA ComboBox

ComboBox is de gebruikersformulierfunctie in VBA , ze verschillen van de tekstvakken omdat tekstvakken worden gebruikt om alleen tekst te bevatten en we de gebruiker toestaan ​​om elk type gegevens in te voeren, maar door keuzelijsten met invoervak ​​te gebruiken, beperken we de gebruiker tot het type antwoord dat we willen dus de gegevens zijn op een ordelijke manier, het is vergelijkbaar met de validatie van lijstgegevens in Excel.

ComboBox kan worden vergeleken met een vervolgkeuzelijst in Excel, in werkbladen hebben we gegevensvalidatie gebruikt om een ​​vervolgkeuzelijst te bieden, maar in VBA is er een gebruikersformulierfunctie waar het wordt gebruikt om een ​​vervolgkeuzelijst in elk gebruikersformulier te bieden, maar als we een keuzelijst met invoervak ​​in Excel willen gebruiken, kunnen we deze ook openen vanuit de ontwikkelaarssectie. Van daaruit kunnen we keuzelijsten met invoervak ​​maken voor individuele of meerdere cellen.

Combo Box lijkt erg op de vervolgkeuzelijst die we in een Excel-werkblad hebben, met de combobox kunnen we vooraf bepaalde waarden opslaan, zodat gebruikers de selectie uit de lijst beschikbaar maken vanuit de combo box. Combo Box wordt over het algemeen samen met gebruikersformulieren gebruikt als onderdeel van het verkrijgen van de input van de gebruikers.

Gebruikersformulieren zijn handig, maar het hebben van andere tools op het gebruikersformulier maakt het gebruikersformulier zo speciaal. Een van de tools die we vaak gebruiken als tool voor gebruikersformulieren is “ComboBox”.

Top 2 manieren om een ​​VBA ComboBox te maken

U kunt deze VBA Combo Box Excel-sjabloon hier downloaden - VBA Combo Box Excel-sjabloon

# 1 - Directe codering gebruiken

Eerst zullen we zien hoe u Combo Box met het werkblad kunt gebruiken. Open een van de werkbladen in de Excel-werkmap, ga naar het tabblad Ontwikkelaar en onder dit tabblad hebben we een tool genaamd "Invoegen". Klik hierop en daaronder hebben we twee opties Active X Controls & Form Controls in Excel.

Kies bij "Active X Controls" voor "Combo Box".

Nu kunt u dit object op elk van de werkbladen tekenen.

Klik met de rechtermuisknop op de combobox en kies de optie "Eigenschappen".

Wanneer u eigenschappen kiest, wordt een enorme lijst met eigenschappen van een keuzelijst met invoervak ​​geopend.

Voor deze combobox gaan we een lijst met afdelingsnamen geven, dus verander de naameigenschap van de combobox in  "DeptComboBox" .

Nu wordt naar deze combobox verwezen met de naam "DeptComboBox" . We moeten vooraf bepaalde afdelingsnamen geven, dus hier heb ik een lijst met afdelingsnamen.

Nu moeten we deze waarden toevoegen aan de keuzelijst met invoervak, we kunnen dit op twee manieren doen, via codering of via name manager.

Dubbelklik op de Combobox en u gaat naar de VBA-macroprocedure.

Maar we moeten deze afdelingsnamen zien wanneer het werkboek wordt geopend, dus dubbelklik op "ThisWorkbook".

Kies "Werkboek" in de vervolgkeuzelijst.

Kies uit de opties "Openen".

Nu zal het een blanco creëren zoals de onderstaande.

Voer binnen deze macro de onderstaande code in.

Code:

 Private Sub Workbook_Open () met werkbladen ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operations" .AddItem "Audit" .AddItem "Client Servicing" Einde met End Sub 

Ok, sla nu de werkmap op en sluit hem, wanneer je de werkmap opnieuw opent, kunnen we de afdelingsnamen erin zien.

# 2 - UserForm gebruiken

Een andere manier om waarden aan de ComboBox toe te voegen, is door het gebruikersformulier te gebruiken. Geef eerst de cellen een naam als "Afdeling".

Ga naar Visual Basic Editor en voeg het gebruikersformulier in via de optie INSERT.

Nu is het nieuwe gebruikersformulier gemaakt.

Naast het gebruikersformulier kunnen we “Toolbox” zien vanuit deze toolbox kunnen we “Combo Box” invoegen.

Nu is de keuzelijst met invoervak ​​ingebed in het gebruikersformulier. Om de eigenschappenoptie te openen, selecteert u de keuzelijst met invoervak ​​en drukt u op F4 om het eigenschappenvenster te openen.

Scroll naar beneden op het eigenschappen-tabblad en kies "Rijbron".

Voer voor deze “Rijbron” de naam in die we aan de afdelingsnaamcellen hadden gegeven.

Nu bevat deze combobox de referentie van de naam "Afdeling" .

Voer nu het gebruikersformulier uit met behulp van de knop Uitvoeren.

Nu kunnen we een lijst met afdelingsnamen zien in de keuzelijst op het gebruikersformulier.

Praktisch gebruikersformulier gekoppeld aan een keuzelijst met invoervak, tekstvak en vele andere hulpmiddelen. We zullen een eenvoudig gebruikersformulier voor gegevensinvoer maken met een tekstvak en een keuzelijst met invoervak.

Maak een gebruikersformulier zoals hieronder.

Maak twee Command-knoppen.

Dubbelklik op de "SUBMIT" -knop, het zal openen onder de macro.

Voeg binnen deze macro onderstaande code toe.

Code:

 Private Sub CommandButton1_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = TextBox1.Value Cells(LR, 2).Value = ComboBox1.Value End Sub 

Now double click on the “CANCEL” button and add the below code.

Now in the worksheet create a template like the below.

Now run the user form and it will open up like this.

Enter the employee name and pick the department name from the combo list.

Click on the SUBMIT button and see the magic.

We got the values entered in the table format we have created.

Things to Remember

  • COMBO BOX has its own properties as well.
  • Adding values to list comes in two ways one is a coding way and another one is range name reference.
  • COMBO BOX is usually part of the user form.