Deze zelfstudie laat zien hoe u gegevensvalidatie kunt gebruiken om te werken met vervolgkeuzelijsten in Excel met behulp van VBA.
Met Excel-gegevensvalidatie kunt u beperken welke waarde(n) in een cel of bereik mogen worden ingevoerd. U kunt de invoer beperken tot positieve gehele getallen, tekst, datums en nog veel meer. In deze zelfstudie gaan we kijken hoe u een vervolgkeuzelijst voor gegevensvalidatie in een cel kunt maken met behulp van VBA.
Opmerking: een alternatief voor een vervolgkeuzelijst voor gegevensvalidatie is een ListBox-object. ListBoxen kunnen worden toegevoegd aan Excel-werkbladen. ListBoxen kunnen macro's activeren die worden uitgevoerd telkens wanneer een ListBox-waarde wordt gewijzigd. ListBoxen worden ook gebruikt in VBA-gebruikersformulieren.
Een vervolgkeuzelijst maken met VBA
We hebben de tekst Fruit in cel A1 en we gaan een vervolgkeuzelijst maken in cel A2, met vijf items.
We gebruiken de methode Validation.Add en specificeren dat de parameter Type xlValidateList is. U kunt de specifieke items die u wilt toevoegen aan uw lijst met behulp van de Formula1-parameter.
De volgende code maakt een vervolgkeuzelijst voor gegevensvalidatie in cel A2:
123456 | Sub DropDownListinVBA()Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _Formula1:="Oranje, Appel, Mango, Peer, Perzik"Einde sub |
Het resultaat is:
Vul een vervolgkeuzelijst in vanuit een benoemd bereik in VBA
U kunt een benoemd bereik gebruiken dat de items bevat om een vervolgkeuzelijst in VBA te vullen. We hebben het genoemde assortiment Dieren hieronder weergegeven:
We moeten de Formula1-parameter gelijk stellen aan het genoemde bereik. De volgende code maakt een vervolgkeuzelijst voor gegevensvalidatie in cel A7 op basis van de items in het genoemde bereik:
123456 | SubpopulateFromAnamedRange()Range ("A7").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _Formule1:="=Dieren"Einde sub |
Het resultaat is:
De vervolgkeuzelijst verwijderen
U kunt de methode Validation.Delete gebruiken om de vervolgkeuzelijst uit de cel te verwijderen. De volgende code verwijdert de vervolgkeuzelijst uit cel A7 in het bovenstaande voorbeeld:
12345 | Sub VerwijderDropDownList()Bereik ("A7"). Validatie.VerwijderenEinde sub |