Hallo Streller,
ich nehme an,
- es gibt nur eine ComboBox, die aber nicht nur PA-3 enthält, sondern insgesamt ca. 40 paarweise verschiedene Einträge,
- die TextBox links hat für die Anzeige der 4 Einträge in die ListBox zunächst keine Beddeutung,
- jedem der ComboBox-Einträge sind vier Werte zugeordnet, die angezeigt werden soll, wenn der Wert der Zuordnung in der ComboBox steht (es gibt also ca. 40 mal 4 Werte für die Anzeigen in der ComboBox),
- dein Problem ist die Methode, wie je nach Anzeige in der ComboBox die richtigen vier Werte aus der Datenhaltung ausgewählt und in die ComboBox eingestellt werden.
Falls das richtig ist, könntest du dir irgendwo eine Tabelle anlegen, z.B. im Bereich ab der Zelladresse Start, sei diese die Zelle in der Zeile a und Spalte b. Diese Tabelle könnte in der 1. Zeile die Einträge der ComboBox und in den 4 Zeilen darunter deine ListBox-Einträge enthalten. Es sollten keine weiteren Einträge weiter rechts in der 1 Zeile dieser Tabelle sein, weil sonst keine flexible Ergänzung möglich ist.
In der Initialisierung der UserForm würde ich die 1. Zeile als Einträge für die ComboBox auswerten: Nach Anklicken eines Eintrags können dieser dann, Eindeutigkeit wie oben vorausgesetzt, in der ersten Zeile gesucht werden und die 4 darunter stehenden Werte in die ListBox geschrieben werden.
Im Wesentlichen sieht das dann so aus, wenn die Boxen der UserForm ComboBox1 und ListBox1 heißen:
Private Anfangszeile, Anfangsspalte
Private Sub UserForm_initialize()
Anfangszeile = 5 'Werte einfügen
Anfangsspalte = 3 'Werte
For i = Anfangsspalte To Cells(Anfangszeile, Columns.Count).End(xlToLeft).Column
ComboBox1.AddItem Cells(Anfangszeile, i)
Next i
ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
ls = Rows(Anfangszeile).Find(ComboBox1.Value).Column
ListBox1.Clear
For i = Anfangszeile + 1 To Anfangszeile + 4
ListBox1.AddItem (Cells(i, ls))
Next
End Sub
Gruß
Holger
|