Dynamische Combobox
Hab lange keine Excelmacros mehr geschrieben darum dachte ich das ich mal wieder hier vorbei schaue.
Ich wollt anhand eines Worksheets welches nur Name enthällt eine Combobox befüllen. Die anzahl an Namen kann sich jederzeit ändern darum das ganze auch dynamisch.
Leider funktionieren meine ganzen ansätze nicht. Eigentlich wollt ich anfangen mit einer Schleife die kontrolliert ob der ihnalt der Zelle <> "" (also nicht leer) ist. Wenn der was in der Zelle findet soll der das in eine Variable schreiben und dann an die Combobox übergeben werden. Alles was ich versucht habe hat dazu geführt das nichts in der ComboBox steht. Leider habe ich jetzt alles einfach gelöscht weil ich so sauer war das ich das nicht hinbekommen habe und kann deshalb nicht meine ansätze posten.
Ich hoffe ihr könnt mir helfen.
MfG Sebastian
Ich wollt anhand eines Worksheets welches nur Name enthällt eine Combobox befüllen. Die anzahl an Namen kann sich jederzeit ändern darum das ganze auch dynamisch.
Leider funktionieren meine ganzen ansätze nicht. Eigentlich wollt ich anfangen mit einer Schleife die kontrolliert ob der ihnalt der Zelle <> "" (also nicht leer) ist. Wenn der was in der Zelle findet soll der das in eine Variable schreiben und dann an die Combobox übergeben werden. Alles was ich versucht habe hat dazu geführt das nichts in der ComboBox steht. Leider habe ich jetzt alles einfach gelöscht weil ich so sauer war das ich das nicht hinbekommen habe und kann deshalb nicht meine ansätze posten.
Ich hoffe ihr könnt mir helfen.
MfG Sebastian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124926
Url: https://administrator.de/forum/dynamische-combobox-124926.html
Ausgedruckt am: 23.12.2024 um 04:12 Uhr
7 Kommentare
Neuester Kommentar
Hallo zusammen!
Wenn sich die Liste in einer Tabelle befindet, dann eher so:
Gruß Dieter
Wenn sich die Liste in einer Tabelle befindet, dann eher so:
'ComboBox in UserForm
With UserForm1.ComboBox1
.RowSource = Sheets("Tabelle1").Range("A1").CurrentRegion.Address
.ListIndex = 0
End With
'ComboBox in Worksheets einbetten
With ComboBox1
.ListFillRange = Range("A1").CurrentRegion.Address
.ListIndex = 0
End With
Gruß Dieter
Hallo Hummel85!
Bei der Code-Auswahl
gehe ich davon aus, dass Du eine User-Form im VB-Editor erstellt hast.
Dann bleiben erst mal die Fragen:
1. Ist der Name Deines Formulars "UserForm1"?
2. Ist der Name Deiner Combo-Box "Combo-Box1"?
3. Wurde der Code vor öffnen der UserForm ausgeführt (initialisiert)?
Also, wenn es sich um eine User-Form im VB-Editor handelt, dann kopiere diesen Quelltext
an den Anfang vom UserForm-Code. Dadurch wird die Combo-Box automatisch vor dem Öffnen der User-Form initialisiert.
Gruß Dieter
Bei der Code-Auswahl
UserForm1.ComboBox1 |
Dann bleiben erst mal die Fragen:
1. Ist der Name Deines Formulars "UserForm1"?
2. Ist der Name Deiner Combo-Box "Combo-Box1"?
3. Wurde der Code vor öffnen der UserForm ausgeführt (initialisiert)?
Also, wenn es sich um eine User-Form im VB-Editor handelt, dann kopiere diesen Quelltext
Private Sub UserForm_Initialize()
With ComboBox1
.RowSource = Sheets("name").Range("A1").CurrentRegion.Address
.ListIndex = 0
End With
End Sub
Gruß Dieter
Hallo Hummel85!
Ups, mein Fehler. Da habe ich doch glatt vergessen den Tabellennamen mit anzugeben
So sollte es jetzt funktionieren:
Alternativ auch so:
Gruß Dieter
Ups, mein Fehler. Da habe ich doch glatt vergessen den Tabellennamen mit anzugeben
So sollte es jetzt funktionieren:
Private Sub UserForm_Initialize()
Dim Wks As Worksheet
Set Wks = Sheets("name")
With ComboBox1
.RowSource = Wks.Name & "!" & Wks.Range("A1").CurrentRegion.Address
.ListIndex = 0
End With
End Sub
.RowSource = Wks.Name & "!A1:A" & Wks.Cells(Wks.Rows.Count, "A").End(xlUp).Row
Gruß Dieter