Willkommen

Pivottabelle

Spezialfilter

Formeln

Zellformate

Bedingte Formate

Gültigkeit

Programmierung

UDF - Funktionen

Tipps & Tricks

Webabfrage

Fehlersuche

Farbindex

Shortcuts

Limitationen

Downloads

Links

Kontakt

Disclaimer

Impressum

Kombinationsfeld / Combobox füllen
Hier sind einige mir bekannte Möglichkeiten, ein Kombinationsfeld mit Werten zu füllen.
 
Zunächst der Fall, dass sich das Kombinationsfeld ( Combobox ) in einer Userform befindet.
 
 
Kombinationsfeld in Userform
 
 
 
 
 
 
In diesem Beispielen wird das Kombinationsfeld beim Öffnen der Userform durch das "Initialize"-Ereignis mit Werten gefüllt. Alle hier aufgeführten Codes werden beim Aufruf ausgeführt.
 
Rechtsklick auf die Userform und "Code anzeigen" auswählen.
 
Und nach Klick auf den rechten Listenpfeil "Initialize"
 
 
 
 
 
Damit die Userform etwas komfortabler aufgerufen werden kann, habe ich mir einen Button ( Formularleiste ) ins Tabellenblatt gelegt, und folgende Prozedur in ein Modul.
 
 
 
 
 
Verbinden kann man den Button mit dem Code so:
 
Rechtsklick auf Button
 
 
 
 
 
Zum Schliessen einen Button ( dann aber aus Werkzeugsammlung ) in die Userform -  Rechsklick auf Button und folgenden Code:
 
 
 
 
Beispiel 1.)
 
 
Hier sind die Daten einzeln im Code hinterlegt:
 
Private Sub UserForm_Initialize()
' Die Daten werden im Code Zeilenweise eingetragen
With Me.ComboBox1
.AddItem "Müller"
.AddItem "Meier"
.AddItem "Schmitz"
.AddItem "Weber"
.AddItem "Mustermann"
.ListIndex = 2 'Vorbelegung "Schmitz" bei Formularstart
End With
End Sub
 
 
 
 
Beispiel 2.)
 
 
Kombinationsfeld wird per Schleife gefüllt. In diesem Beispiel von 1 bis 100.
Vorbelegt ist der Wert "65"
 
 
 
Private Sub UserForm_Initialize()
Dim intI As Integer
With Me.ComboBox1
    For intI = 1 To 100
        .AddItem CStr(intI)
    Next
.Text = "65"
End With
End Sub
 
 
 
 
Beispiel 3.)
 
Kombinationsfeld wird durch "RowSource" und "List" mit Listeneintrag gefüllt.
 
 
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "A3:A5"
End Sub
 
 
Alternativ auch mit einem zuvor namentlich erstellten Bereich.
Hier nun der große Vorteil, einen Bereich auch dynamisch zu gestalten.
( Siehe Tipps & Tricks -> Bereiche definieren )
 
Der Bereich1 umfasst hier ebenfalls A3:A5
 
Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "Bereich1"
End Sub
 
Eine weitere Möglichkeit über die List-Eigenschaft:
 
Private Sub UserForm_Initialize()
Me.ComboBox1.List = Range("A3:A5").Value
End Sub
 
Hier läßt sich der Bereich auch leicht dynamisch gestalten.
Es wird zunächst der unterste Eintrag, hier wieder Spalte A, ermittelt.
 
Private Sub UserForm_Initialize()
Dim lngUntersterEintrag As Long
 
lngUntersterEintrag = Range("A65536").End(xlUp).Row
 
Me.ComboBox1.List = Range("A3:A" & lngUntersterEintrag).Value
End Sub
 
 
 
 
Eine weitere Möglichkeit besteht, indem der einzulesende Datenbereich im Eigenschaftenfenster des Kombinationsfeldes eingetragen wird.
 
 
Beispiel 4.)
 
 
 
 
Sollen nur Unikate eingelesen werden, so siehe auch Programmierung -> Kombinationsfeld / Combobox ohne Duplikate füllen.
 
 
Kombinationsfeld in Tabelle
 
 
 
Befindet sich das Kombinationsfeld direkt in der Tabelle, so gibt es folgende Möglichkeiten es zu füllen:
 
Rechtsklick auf das Steuerelement und im Kontextmenü "Code anzeigen" auswählen.
 
oder Alternativ Rechtsklick auf Tabellenreiter
oder Alternativ Doppelklick auf entsprechende Tabelle im Projektexplorer
 
 
 
 
 
 
 
Im rechten Listenfeld "Activate" auswählen. Wird das Tabellenblatt ausgewählt, so werden hier hinterlegte Codes ausgeführt.
 
 
 
Beispiel 1.)
 
Mit diesem Code wird das Kombinationsfeld gefüllt
 
Private Sub Worksheet_Activate()
ComboBox1.List = Range("A1:A10").Value
End Sub
 
 
 
Beispiel 2.)
 
 
oder von einem anderen Tabellenblatt und dynamisch gehalten.
 
 
Private Sub Worksheet_Activate()
With Worksheets("Tabelle2")
    ComboBox1.List = .Range(.Cells(1, 8), .Cells(.Rows.Count, 8).End(xlUp)).Value
End With
End Sub
 
 
 
 
Wie auch beim Kombinationsfeld, welches sich in einer Userform befindet, kann der Bereich direkt im Eigenschaftenfenster eingegeben werden.
 
 
 
 
Selektierte Daten in Tabelle schreiben
 
Abschließend noch der Hinweis, wie die ausgewählten Daten zurück in die Tabelle geschrieben werden können.
Ein Beispiel für das Kombinationsfeld in der Userform.
 
Code in das Changeereignis des Kombinationsfeldes.
 
 
 
 
oder beim Kombinationsfeld in der Tabelle
 
 
 
 
Alternativ über die "LinkedCell" im Eigenschaftsfenster.