Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ComboBox mit Werten aus Spalte

ComboBox mit Werten aus Spalte
Jeron
Hallo liebe Excel-Freunde,
ich habe gerade in den alten Forenbeiträgen,
folgenden Code gefunden um Werte aus einer Spalte auszulesen, die dann in der ComboBox als DropDown ausgewählt werden können:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "DeineTabelle!A1:A" & Worksheets("Deine Tabelle").Cells(Rows.Count, 1).
End(xlUp).Row
End Sub


Diesen Code habe ich jetzt so verändert, dass ich meinen Tabellenname eingefügt habe, nämlich
Tabellenblatt2 = "Couponbelegung 2009". Die Werte beginnen erst bei Zelle A8 und enden bei bei A51.
Daher lautet mein Code:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Couponbelegung 2009!A8:A" & Worksheets("Couponbelegung 2009").Cells(Rows.Count, 1).End(xlUp).Row
End Sub

Das Problem, ist nur, dass ich folgende Fehlermeldung erhalte und ich nicht weiß wieso:
Runtime error 380
Could not see the row Source property. Invalid property value
Wenn Jemand einen Tipp hat, wäre ich sehr dankbar. Vielleicht kann man das auch anders umsetzten.
Es müsste natürlich auch mit additem gehen, dann müsste ich aber alle 43 Werte eingeben und idealerweise sollte die ComboBox neu hinzugefügte Werte gleich mit aufnehmen..
Vielen Dank für eure Hilfe,
Viele Grüße aus München,
Jeron
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ComboBox mit Werten aus Spalte
23.08.2009 11:24:56
{Boris}
Hi Jeron,
ungetestet: Aufrgrund des Leerzeichens im Blattnamen müssen noch ' um den Bezug:
ComboBox1.RowSource = "'Couponbelegung 2009'!A8:A" & Worksheets("Couponbelegung 2009").Cells(Rows.Count, 1).End(xlUp).Row
Grüße Boris
AW: ComboBox mit Werten aus Spalte
23.08.2009 11:33:06
Jeron
Hallo Boris,
danke für deinen Tipp, ich habe jetzt einfach mal das Tabellenblatt ohne Leerzeichen beschrieben.
Die Fehlermeldung ist jetzt weg, aber es kommt eine Andere:-)
Mein Code schaut jetzt so aus:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Couponbelegung2009!A8:A" & Worksheets("Couponbelegung2009").Cells(Rows. _
Count, 1).End(xlUp).Row
End Sub

Folgende Fehlermeldung tritt auf:
"Runtime error 9
Suscript out of range"
Ist dir diese Fehlermeldung auch schon mal untergekommen?
Für eine eine kurze Rückmeldug, wäre ich dir sehr dankbar.
Viele Grüße
Jeron
Anzeige
AW: ComboBox mit Werten aus Spalte
23.08.2009 11:37:43
hary
Hi Jeron
Hast Du das Blatt auch umbenannt?
Gruss Hary
AW: ComboBox mit Werten aus Spalte
23.08.2009 11:45:52
Jeron
Hallo zusammen,
jetzt funktioniert es prächtig:-) Dachte, ich hätte das Blatt umbenannt.. dem war aber nicht so.
Jetzt habe ich es umbenannt und es passt alles.
Vielen Dank!!!
Viele Grüße
Jeron
AW: ComboBox mit Werten aus Spalte
23.08.2009 11:24:58
Hajo_Zi
Hallo Jeron,
Du hast Leerstellen in Deinem Tabellennamen. Ich vermute da fehlt ' am Beginn und Ende.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ComboBox mit Werten aus einer Excel-Spalte füllen


Schritt-für-Schritt-Anleitung

Um eine ComboBox in einem Excel-UserForm mit Werten aus einer Spalte zu füllen, kannst du folgenden VBA-Code verwenden. Achte darauf, dass du den Tabellennamen und die Zellbereiche entsprechend anpasst.

  1. Öffne den VBA-Editor (ALT + F11).
  2. Erstelle ein neues UserForm und füge eine ComboBox hinzu.
  3. Füge den folgenden Code in das UserForm ein:
Private Sub UserForm_Initialize()
    ComboBox1.RowSource = "'Couponbelegung 2009'!A8:A" & Worksheets("Couponbelegung 2009").Cells(Rows.Count, 1).End(xlUp).Row
End Sub
  1. Stelle sicher, dass der Tabellennamen korrekt ist und die Zellen A8 bis zur letzten ausgefüllten Zelle in Spalte A betrachtet werden.

Häufige Fehler und Lösungen

  • Runtime error 380: Diese Fehlermeldung tritt auf, wenn der Bezug zur RowSource nicht korrekt ist. Achte darauf, dass der Tabellennamen in einfache Anführungszeichen gesetzt wird, falls Leerzeichen enthalten sind.

  • Runtime error 9 (Subscript out of range): Diese Fehlermeldung bedeutet oft, dass das angegebene Tabellenblatt nicht existiert. Überprüfe den genauen Namen des Tabellenblattes und stelle sicher, dass es richtig geschrieben ist.


Alternative Methoden

Wenn du die Werte nicht über die RowSource-Eigenschaft einfügen möchtest, kannst du die AddItem-Methode verwenden. Hier ein Beispiel:

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Couponbelegung 2009")

    Dim i As Long
    For i = 8 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        ComboBox1.AddItem ws.Cells(i, 1).Value
    Next i
End Sub

Diese Methode fügt jeden Wert einzeln zur ComboBox hinzu und ist nützlich, wenn du spezielle Anpassungen vornehmen möchtest.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit Coupons in Spalte A, beginnend ab A8 bis A51. Mit dem oben genannten Code wird die ComboBox automatisch mit diesen Werten gefüllt, wenn das UserForm geöffnet wird.

Du kannst auch die AddItem-Methode verwenden, um nur bestimmte Werte hinzuzufügen oder um die Werte zu filtern.


Tipps für Profis

  • Überprüfe immer, ob dein Tabellenblatt existiert und richtig benannt ist, bevor du den Code ausführst.
  • Nutze die Debug.Print-Funktion in VBA, um den Inhalt der ComboBox während der Entwicklung zu überprüfen.
  • Wenn du viele Werte hast, die häufig geändert werden, könnte es sinnvoll sein, eine dynamische Datenquelle zu verwenden, wie einen Excel-Datenbereich oder eine Tabelle.

FAQ: Häufige Fragen

1. Was mache ich, wenn die ComboBox leer bleibt?
Überprüfe, ob der Code im UserForm_Initialize-Event korrekt gesetzt ist und dass die angegebenen Zellen tatsächlich Werte enthalten.

2. Wie kann ich die Werte in der ComboBox sortieren?
Eine Möglichkeit besteht darin, die Werte zuerst in ein Array zu laden, dieses Array zu sortieren und dann die sortierten Werte zur ComboBox hinzuzufügen.

3. Kann ich mehrere Spalten in der ComboBox anzeigen?
Standardmäßig zeigt eine ComboBox nur eine Spalte an, aber du kannst die Werte formatieren, um mehrere Informationen zu kombinieren (z.B. mit einem Trennzeichen).

4. Wie kann ich die ComboBox leeren, bevor ich neue Werte hinzufüge?
Verwende ComboBox1.Clear, bevor du die neuen Werte hinzufügst, um sicherzustellen, dass alte Werte entfernt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige