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

Forumthread: Combobox füllen

Combobox füllen
17.06.2008 09:19:00
FM
Hallo,
ich habe schon die Suche benutzt. Es gab zwar Ergebnisse aber leider halfen sie mir nicht weiter.
Ich habe eine Userform. In diese will ich aus einem Tabellenblatt eine einzeilige Spalte einlesen, um diese Werte dann in der Combobox zur Verfügung zu haben.
Meine Idee war nun einfach mit dem initialize Ereignis und listfillrange die Combobox zu füllen:

Private Sub BR_input_initialize()
ComboBox1.ListFillRange = "data!A2:A49"
End Sub


Es kommt zwar keine Fehlermeldung, allerdings ist die Box auch leer.
Wie kann ich das hinkriegen?
P.S. ich würde, wenn möglich die Box füllen mit Werten aus dem Excel Tabellenblatt, nicht mit einem Array, da diese Werte sich evtl. ändern können und es recht viele sind...
Danke im voraus
Florian

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox füllen
17.06.2008 09:35:00
Matthias
Hallo

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "data!A2:A49"
End Sub


Gruß Matthias

AW: Combobox füllen
17.06.2008 10:02:00
Beverly
Hi Matthias,
sorry, dein Beitrag wurde mir erst jetzt angezeigt. Aber wenigstens enthalten beide eine andere Lösungsmöglichkeit.


Anzeige
AW: Combobox füllen
17.06.2008 09:58:00
Beverly
Hi Florian,

ComboBox1.RowSource = Worksheets("data").Range("A2:A49").Address




;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Combobox in Excel VBA füllen


Schritt-für-Schritt-Anleitung

Um eine Combobox in einer Excel Userform mit Werten aus einem Tabellenblatt zu füllen, befolge diese Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle eine Userform:

    • Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle "Einfügen" > "UserForm".
  3. Füge eine Combobox hinzu:

    • Ziehe eine Combobox aus der Toolbox in die Userform.
  4. Nutze das Initialize-Ereignis:

    • Doppelklicke im VBA-Editor auf die Userform, um das Code-Fenster zu öffnen.
    • Füge den folgenden Code hinzu:
    Private Sub UserForm_Initialize()
       ComboBox1.RowSource = "data!A2:A49"
    End Sub
  5. Fülle die Combobox mit Werten:

    • Stelle sicher, dass die Daten in "data!A2:A49" vorhanden sind und die Userform korrekt aufgerufen wird.
  6. Teste die Userform:

    • Starte die Userform, um zu sehen, ob die Combobox gefüllt wird.

Häufige Fehler und Lösungen

  • Fehler: Combobox bleibt leer:

    • Lösung: Überprüfe, ob der Tabellenblattname korrekt ist und die Zellen Werte enthalten. Stelle sicher, dass die Userform korrekt initialisiert wird.
  • Fehler: Typkonflikt:

    • Lösung: Achte darauf, dass die Range korrekt definiert ist und keine leeren Zellen in der Liste vorhanden sind.

Alternative Methoden

Wenn du die Combobox nicht mit einer RowSource füllen möchtest, kannst du auch folgende Methoden verwenden:

  • Mit List Eigenschaft:

    Private Sub UserForm_Initialize()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("data")
       ComboBox1.List = ws.Range("A2:A49").Value
    End Sub
  • Mit Schleifen:

    Private Sub UserForm_Initialize()
       Dim i As Integer
       With ThisWorkbook.Worksheets("data")
           For i = 2 To 49
               ComboBox1.AddItem .Cells(i, 1).Value
           Next i
       End With
    End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie du die Combobox in verschiedenen Szenarien füllen kannst:

  • Füllen mit Werten aus einer anderen Tabelle:

    Private Sub UserForm_Initialize()
       ComboBox1.RowSource = "Tabelle2!B1:B20"
    End Sub
  • Füllen einer Combobox bei einem Dropdown:

    Private Sub UserForm_Initialize()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("data")
       ComboBox1.List = ws.Range("B1:B10").Value
    End Sub

Tipps für Profis

  • Dynamische Daten: Wenn deine Daten sich oft ändern, ist es vorteilhaft, die Combobox jedes Mal beim Öffnen der Userform zu füllen, um sicherzustellen, dass die neuesten Werte angezeigt werden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Code nicht bei einem Fehler stoppt:

    On Error Resume Next
    ComboBox1.RowSource = "data!A2:A49"
    If Err.Number <> 0 Then
       MsgBox "Fehler beim Füllen der Combobox: " & Err.Description
    End If
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit einem Array füllen?
Du kannst die List-Eigenschaft verwenden:

ComboBox1.List = Array("Wert1", "Wert2", "Wert3")

2. Was ist der Unterschied zwischen RowSource und List?
RowSource erlaubt es, eine Range direkt zu referenzieren, während List verwendet wird, um direkt Werte zu übergeben.

3. Kann ich die Combobox auch mit einer Dropdown-Liste füllen?
Ja, die Vorgehensweise ist identisch. Nutze einfach die RowSource oder die List-Eigenschaft, um die Dropdown-Werte anzugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige