Startseite

Kombinationsfelder (ComboBoxen) in Abhängigkeit füllen

Eine interessante Variante beim Einsatz von Kombinationsfeldern ist es, deren Inhalte in Abhängigkeit von einander anzulegen.
Dazu legen wir zunächst ein UserForm mit zwei Kombinationsfeldern an.
Diese Quelltexte werden in das Modul des UserForms geschrieben:
Option Explicit
' Die Makros dürfen frei verwendet werden, solange mein Name nicht entfernt wird

Private Sub ComboBox1_Change()
' geschrieben von Klaus-Dieter Oppermann
' ComboBox2 in Abhängikeit füllen
' Variablen deklarieren
Dim iSpalte As Integer                                                  ' aktuelle Spalte
Dim iZiel As Integer                                                    ' letzte gefüllte zelle in aktueller Spalte
Dim rng As String                                                       ' Range für Spaltendefinition
iSpalte = ComboBox1.ListIndex + 2                                       ' aktuelle Spalte definieren
rng = Chr(iSpalte + 64) & "65536"                                       ' Range definieren
iZiel = Worksheets("Definitionen").Range(rng).End(xlUp).Row             ' letzte gefüllte Zelle in aktueller Spalte
ComboBox2.Clear                                                         ' alte Inhalte löschen
ComboBox2.List = Range(Worksheets("Definitionen").Cells(1, iSpalte), _
Worksheets("Definitionen").Cells(iZiel, iSpalte)).Value                 ' neue Liste einlesen
End Sub

Private Sub UserForm_activate()
' geschrieben von Klaus-Dieter Oppermann
' ComboBox 1 mit definierten Inhalten füllen
ComboBox1.List = Worksheets("Definitionen").Range("A1", "A" & _
Worksheets("Definitionen").Range("A65536").End(xlUp).Row).Value         ' Liste an Combobox übergeben
End Sub

Code eingefügt mit: Excel Code Jeanie
Listen in dieser Art kann man zum Füllen der Kombinationsfelder anlegen. Die Inhalte in Spalte A werden im Beispiel für das Kombinationsfeld 1 verwendet. Die Länge der Spalten wird vom Makro ermittelt, so dass beliebig viele Inhalte zugefügt werden können:
Definitionen
  A B C D
1 Autos Audi Berlin Katze
2 Städte BMW Braunschweig Hund
3 Tiere Citroen´ Bremen Vogel
4   Ford Celle Pferd
5   Opel Hamburg Hase
6   Mercedes Hannover Rind
7   VW Lüneburg  
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Die Folgespalten, im Beispiel B bis D nehmen die Inhalte für das folgende Kombinationsfeld auf. Dabei muss die Reihenfolge der Inhalte zu Spalte A passen. Zeile 1 in Spalte A für Spalte B, Zeile 2 für Spalte D usw.
Selbstverständlich kann man nach diesem Muster beliebig viele Kombinationsfelder in Abhängigkeit bekommen, nicht nur zwei, wie im Beispiel. Damit sollte nur die grundsätzliche Vorgehensweise dargestellt werden.
Abschließend noch eine Erläuterung zum ListIndex der Kombinationsfelder. Damit wird die Position der Inhalte in ihrer Reihenfolge definiert. ACHTUNG, die Nummerierung beginnt mit 0 (Null). Deshalb die Schreibweise ListIndex + 2, da im Beispiel die erste auszulesende Spalte die Spalte B (2) ist.
Mit Hilfe des ListIndex wird festgelegt, welche Spalte in der ComboBox2 dargestellt wird.