Moin!
Vorab:
Es gibt zu diesem Thema bereits viele Beispiele im Netz!
Eine unerschöpfliche Seite findet ihr z.B. hier:
http://www.snb-vba.eu/VBA_Fill_combobox_listbox_en.html
Mittlerweile wurden einige neue Funktionen ausgerollt, so dass der Umweg über "scripting.dictionary" oder "System.Collections.ArrayList" (siehe obiger Link) nicht mehr notwendig ist.
Statt dessen bediene ich mich der Funktionen EINDEUTIG und SORTIEREN (englisch UNIQUE und SORT), wobei der List-Eigenschaft der Combobox das dynamische Array direkt per Evaluate() übergeben wird.
Ausgangsposition:
Code für die sich auf dem gleichen Tabellenblatt befindliche ComboBox:
Dim Bereich$
With Tabelle1
Bereich = .Range("A2", .Range("A2").End(xlDown)).Address
.ComboBox1.List = Evaluate("SORT(UNIQUE(" & Bereich & "))")
End With
ergibt:
Gruß Ralf
Vorab:
Es gibt zu diesem Thema bereits viele Beispiele im Netz!
Eine unerschöpfliche Seite findet ihr z.B. hier:
http://www.snb-vba.eu/VBA_Fill_combobox_listbox_en.html
Mittlerweile wurden einige neue Funktionen ausgerollt, so dass der Umweg über "scripting.dictionary" oder "System.Collections.ArrayList" (siehe obiger Link) nicht mehr notwendig ist.
Statt dessen bediene ich mich der Funktionen EINDEUTIG und SORTIEREN (englisch UNIQUE und SORT), wobei der List-Eigenschaft der Combobox das dynamische Array direkt per Evaluate() übergeben wird.
Ausgangsposition:
A | |
1 | Städte |
2 | Köln |
3 | Aachen |
4 | Münster |
5 | Zwickau |
6 | Überlingen |
7 | Musweiler |
8 | Aachen |
9 | Münster |
10 | Koblenz |
11 |
Code für die sich auf dem gleichen Tabellenblatt befindliche ComboBox:
Dim Bereich$
With Tabelle1
Bereich = .Range("A2", .Range("A2").End(xlDown)).Address
.ComboBox1.List = Evaluate("SORT(UNIQUE(" & Bereich & "))")
End With
ergibt:
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)