Alle Methoden, um Daten aus einer Tabelle in deiner ComboBox einzufügen
Ich möchte dir zeigen, welche Möglichkeiten zur Verfügung stehen, um Daten in deiner ComboBox anzuzeigen.
Zu Beginn benötigst du eine Intelligente Tabelle (tblVerkaeufe) sowie eine UserForm mit entsprechender ComboBox.
Um VBA zu lernen und besser zu verstehen, empfehle ich dir mein kostenloses Grundlagentraining, in dem ich dir die ersten Schritt in Excel-VBA zeige.
Die verschiedenen Methoden im Überblick:
Es gibt drei Hauptmethoden, um eine Combo-Box zu befüllen, die du vielseitig und deinen Bedürfnissen entsprechend einsetzen kannst.
- RowSource
- AddItem
- List
- Range
- Array
Die RowSource Methode
Mit der RowSource Methode kannst du definierte, zusammenhängende Zellbereiche zu deiner ComboBox hinzufügen. Änderungen am Tabellenblatt, die den eingefügten Zellbereich betreffen, werden automatisch übernommen und in der ComboBox dargestellt. Mit dieser Methode ist es nicht möglich einzelne Werte hinzuzufügen.
' Fest definierten Zellbereich in die ComboBox einfügen
ComboBox1.RowSource = "Verkäufe!D12:D21"
' Spalte einer intelligenten Tabelle in die ComboBox einfügen
ComboBox1.RowSource = Range("tblVerkaeufe[Straße]").Address
' Praxistipp: Erstelle für deine ComboBox eine eigene intelligente Tabellen mit einer Spalte, die du einliest.
ComboBox1.RowSource = Tabelle2.Range("tblPLZ").Address
Die AddItem Methode
Die AddItem Methode bietet die Möglichkeit einzelne, unabhängige Werte der ComboBox hinzuzufügen. Eine Verbindung zum Tabellenblatt besteht nicht und du kannst einzelne Werte jederzeit per Code hinzufügen.
Dim cell As Range
'Schleife über alle Zellen im Zellbereich
For Each cell In Range("tblVerkaeufe[Ort]")
'Zellwert zur ComboBox hinzufügen
ComboBox1.AddItem cell.Value
Next cell
Die List Methode
Die List Methode Range bietet einerseits die Möglichkeit zusammenhängende Werte einzutragen, wobei hier keine Verbindung zum Tabellenblatt besteht und du kannst einzelne Werte jederzeit per Code hinzufügen.
Die List Methode Array bietet die Möglichkeit einzelne, unzusammenhängende Werte einzutragen, wobei hier ebenfalls keine Verbindung zum Tabellenblatt besteht und du einzelne Werte jederzeit per Code hinzufügen kannst.
'List mit Range
Dim rng As Range
Set rng = Range("TblVerkaeufe[Ort]")
ComboBox1.List = rng.Value
'List mit Array
Dim arr As Variant
Dim rng As Range
Set rng = Range("TblVerkaeufe[Ort]")
arr = rng
ComboBox1.List = arr
Erstes Element der ComboBox automatisch auswählen
Du kannst das erste Elemente der ComboBox automatisch auswählen.
'Erstes Element auswählen
ComboBox1.ListIndex = 0
Werte händisch eintragen deaktivieren
Im Standardfall ist eine ComboBox so definiert, dass das Eintragen neuer Werte erlaubt ist. Wenn du das deaktivieren möchtest, musst du im Eigenschaftenfenster der ComboBox den Style Eintrag ändern.
0 – frmStyleDropDownCombo (Lässt das Eintragen eines Wertes zu)
2 – frmStyleDropDownList (Entfenrt die Möglichkeit, Werte direkt einzugeben)
Mit ausgewältem Eintrag weiterarbeiten
Du kannst mit dem ausgewählten Wert in der ComboBox natürlich weiterarbeiten und z.B. eine MessageBox damit befüllen.
Private Sub btnAusgabe_Click()
MsgBox ComboBox1.Value
End Sub
Ich hoffe dieses Tutorial hilft dir dabei, deine ComboBoxen in deinen Excel-Anwendungen effektiv zu nutzen.
Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!