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

Forumthread: Combobox dynamisch füllen

Combobox dynamisch füllen
Kai
Hi,
habe mal folgende Frage: Habe in einer Spalte Daten drin stehen. (max. A1 - A10)
Danneben habe ich eine Combobox stehen. diese Fülle ich mit Nummern:
ComboBox1.AddItem "1"
ComboBox1.AddItem "2"
ComboBox1.AddItem "3"
usw...
IN der Combobox sollen immer so viele Ziffern eingelesen werden , wie Anzahl der Datensätze. zB.
A1 = "DS1"
A2 = "DS2"
A3 = "DS3"
A4 = "DS4"
Also soll in meine Combobox die Ziffern 1-4 zur Auswahl stehen.
Meine Frage. Lässt sich das Füllen der Combobox (wieviel Ziffern) mit Zahlen irgend wie abhängig machen in Bezug auf meine Anzahl Datensätze ?
Danke mal
Kai
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Combobox dynamisch füllen
03.07.2009 09:54:51
Hajo_Zi
Hallo kai
For Loi=1 To AnzahlDatensätze
Combobox1.Additem Loi
Next Loi

AW: Combobox dynamisch füllen
03.07.2009 10:22:02
Kai
Hi Hajo
Danke.
wie kann ich denn ermitteln, wieviele datensätze in meinem Range belegt oder frei sind. Habe es mal versucht mit einer Formel (ZähleWenn) aber da wird das Ergebnis nicht aktuallisiert, wenn ich zB einen DS lösche.
GRuss
Kai
Anzeige
AW: Combobox dynamisch füllen
03.07.2009 10:24:19
Hajo_Zi
Hallo Kai,
Dim LoLetzte As Long
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Gruß Hajo
Anzeige
AW: Combobox dynamisch füllen
03.07.2009 11:38:33
Kai
Hi Hajo,
ich habe etwas Probleme: den Range , den ich Abfragen will , ist auf dem Sheet "Startseite" ím Bereich "A1:A10)
der Code soll nicht weiter bis ans Ende der Datei sondern nur diese 10 Zeilen prüfen.
Mache ich da was falsch ?
Danke Gruss
Kai
AW: Combobox dynamisch füllen
03.07.2009 12:44:50
Hajo_Zi
Hallo kai,
ich sehe Deinen Code nicht.

Option Explicit
Sub Kai()
Dim LoLetzte As Long
With Worksheets("Startseite")
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
End With
If LoLetzte > 10 Then LoLetzte = 10
End Sub


Gruß Hajo

Anzeige
Danke, passt owT
03.07.2009 13:20:23
Kai
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Combobox dynamisch füllen in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Combobox dynamisch zu füllen, gehst Du folgendermaßen vor:

  1. Öffne Excel und aktiviere den Visual Basic for Applications (VBA) Editor mit ALT + F11.
  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf „VBAProject (DeineDatei)“ klickst und „Einfügen“ > „Modul“ wählst.
  3. Schreibe den folgenden VBA-Code in das Modul:
Option Explicit

Sub FuelleCombobox()
    Dim LoLetzte As Long
    Dim i As Long

    With Worksheets("Startseite")
        ' letzte belegte Zeile in Spalte A
        LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
    End With

    ' Setze die maximale Anzahl auf 10
    If LoLetzte > 10 Then LoLetzte = 10

    ' Fülle die Combobox mit den Ziffern
    For i = 1 To LoLetzte
        ComboBox1.AddItem i
    Next i
End Sub
  1. Schließe den VBA-Editor und kehre zu Deinem Excel-Dokument zurück.
  2. Füge eine Combobox auf dem Arbeitsblatt „Startseite“ hinzu, wenn noch nicht geschehen.
  3. Führe das Makro FuelleCombobox aus, um die Combobox mit den Zahlen zu füllen.

Häufige Fehler und Lösungen

  • Fehler: Combobox bleibt leer
    Lösung: Stelle sicher, dass das Makro FuelleCombobox korrekt ausgeführt wurde und dass sich die Daten im angegebenen Bereich (A1:A10) befinden.

  • Fehler: Zu viele Ziffern in der Combobox
    Lösung: Überprüfe die Bedingung, die die maximale Anzahl der Ziffern auf 10 beschränkt.


Alternative Methoden

Wenn Du die Combobox in VBA füllen möchtest, gibt es auch alternative Ansätze:

  1. Datenquelle direkt angeben: Du kannst die Combobox mit einer Datenquelle aus einem anderen Arbeitsblatt füllen, indem Du den Range direkt angibst.

    ComboBox1.List = Worksheets("Datenblatt").Range("A1:A10").Value
  2. Verwendung von Arrays: Du kannst die Werte auch in ein Array laden und die Combobox dann mit diesem Array füllen.


Praktische Beispiele

Beispiel 1: Füllen der Combobox aus einer Tabelle

Wenn Du eine Liste von Namen oder IDs in einem anderen Arbeitsblatt hast:

Sub FuelleComboboxAusTabelle()
    Dim ws As Worksheet
    Set ws = Worksheets("Datenblatt")

    ComboBox1.List = ws.Range("A1:A10").Value
End Sub

Beispiel 2: Dynamisches Füllen basierend auf einer Bedingung

Du kannst auch die Combobox nur mit bestimmten Werten füllen, abhängig von anderen Zellen.

Sub DynamischesFüllen()
    Dim i As Long
    For i = 1 To 10
        If Worksheets("Startseite").Cells(i, 1).Value <> "" Then
            ComboBox1.AddItem Worksheets("Startseite").Cells(i, 1).Value
        End If
    Next i
End Sub

Tipps für Profis

  • Setze die ComboBox1.Clear-Methode am Anfang des Makros ein, um sicherzustellen, dass die Combobox vor dem Füllen geleert wird.

  • Verwende Error-Handling, um potenzielle Laufzeitfehler zu behandeln, z.B. wenn das Arbeitsblatt nicht existiert.

  • Experimentiere mit dem VBA-Editor, um die Eigenschaften der Combobox anzupassen, z.B. ListRows, um die Anzahl der angezeigten Elemente zu steuern.


FAQ: Häufige Fragen

1. Wie kann ich die Combobox mit Werten aus einem anderen Arbeitsblatt füllen?
Du kannst die Werte aus einem anderen Arbeitsblatt mit ComboBox1.List = Worksheets("Datenblatt").Range("A1:A10").Value einfügen.

2. Was mache ich, wenn die Combobox nicht in der Benutzeroberfläche sichtbar ist?
Überprüfe die Eigenschaften der Combobox im VBA-Editor und stelle sicher, dass sie sichtbar ist (Visible = True).

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