Supportnet / Forum / Tabellenkalkulation
User Form / ComboBox bzw. Listbox - allgmein
Frage
Hallo Community,
in einer UserForm möchte ich gern eine ComboBox bzw. eine Listbox hinterlegen und diese mit vordefinierten Werten füllen. Leider finde ich bis jetzt keine verständlichen Anleitungen bzw. Erklärungen, wie ich die Auswahlfelder füllen kann, bzw. nach Auswahl auf andere Bereiche verzweigen ("Case"?) kann.
Vielleicht kann mir auch dieses Mal wieder die Communtiy hilfreich zur Seite stehn ?
Viele Grüße
martl
Antwort 1 von coros
Hi @martl,
um Daten in solch ein Feld zu bekommen, müssen die Daten in einem Tabellenblatt hintereinander vorhanden sein. Ich mache mir dafür immer eine Hilfstabelle, die ich dann nachher über einen VBA Befehl ausblende und bei Bedarf wieder einblende. Dann wird beim Aufrufen der UserForm folgende Anweisung, um z.B. ein Listenfeld mit Werten zu füllen, ausgeführt
In der Zeile
For i = 2 To 31
wird der Bereich, hier von Zeile 2 bis 31, festgelegt.
In der Zeile
UserForm1.ListBox1.AddItem Sheets("Hilfstabelle").Cells(i, 1).Value
wird festgelegt, dass in der UserForm1 in dem Listenfeld ListBox1 die Werte aus dem Tabellenblatt "Hilfstabelle" aus dem Bereich A2 bis A31 (sagt der Teil Cells(i, 1) aus)angezeigt werden. Danach wird die UserForm geöffnet.
Bei einer ComboBox ist der Code genau der gleiche. Es muss in der Anweisung nur ListBox1 gegen ComboBox1 getauscht werden.
Ich hoffe, die Erklärung ist nach Deinen Wünschen. Bei Fragen kannst Du Dich ja noch mal melden.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
um Daten in solch ein Feld zu bekommen, müssen die Daten in einem Tabellenblatt hintereinander vorhanden sein. Ich mache mir dafür immer eine Hilfstabelle, die ich dann nachher über einen VBA Befehl ausblende und bei Bedarf wieder einblende. Dann wird beim Aufrufen der UserForm folgende Anweisung, um z.B. ein Listenfeld mit Werten zu füllen, ausgeführt
Private Sub CommandButton1_Click()
For i = 2 To 31 'Zeile 1 bis 31
UserForm1.ListBox1.AddItem Sheets("Hilfstabelle").Cells(i, 1).Value
Next
UserForm1.Show
End SubIn der Zeile
For i = 2 To 31
wird der Bereich, hier von Zeile 2 bis 31, festgelegt.
In der Zeile
UserForm1.ListBox1.AddItem Sheets("Hilfstabelle").Cells(i, 1).Value
wird festgelegt, dass in der UserForm1 in dem Listenfeld ListBox1 die Werte aus dem Tabellenblatt "Hilfstabelle" aus dem Bereich A2 bis A31 (sagt der Teil Cells(i, 1) aus)angezeigt werden. Danach wird die UserForm geöffnet.
Bei einer ComboBox ist der Code genau der gleiche. Es muss in der Anweisung nur ListBox1 gegen ComboBox1 getauscht werden.
Ich hoffe, die Erklärung ist nach Deinen Wünschen. Bei Fragen kannst Du Dich ja noch mal melden.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von martl
Hallo Coros,
vorab erstmal vielen Dank für Deine ausführliche Antwort. Hab den Code gleichmal eingebaut und ausprobiert und bin total begeistert. Irgendwie haben mich die anderen Beispiele durch ihre Komplexität total durcheinander gebracht.
Nochmals vielen Dank für das aussagekräftige Beispiel, mit dem ich nun eine solide Basis für meine List & ComboBoxen habe.
Verbunden mit vielen Grüßen und den besten Wünschen für ein frohes Osterfest
Martl
vorab erstmal vielen Dank für Deine ausführliche Antwort. Hab den Code gleichmal eingebaut und ausprobiert und bin total begeistert. Irgendwie haben mich die anderen Beispiele durch ihre Komplexität total durcheinander gebracht.
Nochmals vielen Dank für das aussagekräftige Beispiel, mit dem ich nun eine solide Basis für meine List & ComboBoxen habe.
Verbunden mit vielen Grüßen und den besten Wünschen für ein frohes Osterfest
Martl

