|
VBA - Userform Listbox befüllen |
|
|
|
|
Geschrieben von: Marcus Rose
|
|
Montag, 05. Januar 2009 um 04:00 Uhr |
|
Die Userform und die ListBox. Das Thema ist größer als ich angenommen hatte. Erst als ich mich etwas tiefer in diese Materie einarbeiten wollte wurde mir das klar. Es gibt mehrere Methoden die Daten in eine ListBox zu bekommen. Die einfachste Möglichkeit ist den RowSource anzugeben. Das kann man entweder in den Eigenschaften der Listbox, oder man programmiert das im Code. Im programmierten Code sähe das so aus: ListBox1.RowSource = "Tabelle1!A2:A10" Probleme kommen nicht einmal dann auf, wenn man die ListBox mehrspaltig programmieren möchte (Man muß es nur einmal gesehen haben). Für diesen Zweck haben wir die Punkte ColumnCount und ColumnWidths. Mit ColumnCount bestimmen wir wie viele Spalten in der Listbox reserviert werden sollen. ColumnWidths benötigen wir dann um die Breite der Spalten festzulegen. 
Ein Code um eine Listbox zu befüllen sähe zum Beispiel so aus: Private Sub UserForm_Initialize() With ListBox1 .ColumnCount = 3 .ColumnWidths = "1cm;2cm;2cm" .ColumnHeads = True ListBox1.RowSource = "Tabelle1!A2:C10" 'oder: 'ListBox1.RowSource = "Tabelle1!A2:C" & loletzte End With End Sub
Probleme mit dem Einlesen einer ListBox treten erst dann auf, wenn man ColumnHeads (Überschriften in der Listbox) eintragen lassen möchte. Das kann man nicht mit jeder Möglichkeit zur ListBox - Befüllung. So treten z.B. Probleme auf wenn ihr keinen zusammenhängenden Bereich als RowSource deklariert, oder die Daten mit .AddItem / .List einlest. Aternativ könnte man hier anstatt der ColumnHeads aber TextBoxen nutzen. Damit ihr sehen könnt welche Möglichkeiten ihr habt, habe ich euch eine Beispielmappe zum Download bereit gestellt. Link zur Bespielmappe: klick
|
|
Zuletzt aktualisiert am Freitag, 09. Januar 2009 um 08:32 Uhr |