Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Combobox füllen ohne Leerzeilen

Forumthread: Combobox füllen ohne Leerzeilen

Combobox füllen ohne Leerzeilen
onkelbobby
Hi,
ich fülle eine Combobox mit Daten aus einem Tabellenblatt mit folgendem Code:
ComboBox1_Change()
ComboBox1.List = Worksheets("Tabelle2").Range("A1:E1000").Value
End Sub
Die Spalten A bis E sollen eingefügt werden. Die Zeilenanzahl der Tabelle2 ist variabel
Wie ändere ich den Code, dass nur die Zeilen angezeigt werden, die in Spalte A einen Eintrag haben (leere Zeilen eliminieren)?
Danke für Eure Hilfe!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Combobox füllen ohne Leerzeilen
16.07.2012 15:34:49
Matthias
Hallo
Ich würde nicht das Cange-Ereignis bnutzen
Option Explicit
Private Sub Worksheet_Activate()
Dim rng As Range
ComboBox1.Clear
For Each rng In Range("A1:E1000")
If rng  "" Then ComboBox1.AddItem rng
Next
End Sub
Userbild
Gruß Matthias
Anzeige
AW: Combobox füllen ohne Leerzeilen
16.07.2012 16:14:52
onkelbobby
Hi,
danke!
Da ich aber 5 Spalten in die Combobox hole, zeigt mir die Combobox jetzt für jede einzelne Zelle eine neue Zeile an.
Die Spalten sollte schon in einer Zeile angezeigt werden!
Danke schon mal!
AW: Combobox füllen ohne Leerzeilen
16.07.2012 17:51:01
Hajo_Zi
die weiteren Spalten solltest Du nacjh folgendem Prinzip zuweisen, das für eine ListBox ist. Ist aber bei Combobox genauso.
For Loi=1 To 1000
...
ListBox1.List(ListBox1.ListCount, 1) = Cells(loi,2)
ListBox1.List(ListBox1.ListCount, 2) = Cells(loi,3)
...

Anzeige
AW: Combobox füllen ohne Leerzeilen
16.07.2012 18:04:53
onkelbobby
Hallo Hajo!
Hmm?
Checke leider nicht ganz wo dieser Code eingefügt werden muss:
Private Sub Worksheet_Activate()
Dim rng As Range
Dim loi As Long
ComboBox1.Clear
For Each rng In Worksheets("Tabelle2").Range("A1:E1000")
If rng  "" Then ComboBox1.AddItem rng
Next
End Sub
Es handelt sich um 5 Spalten (A bis E), die von Tabelle 2 in eine Combobox in Tabelle1 eingefügt werden sollen.
Sorry, ich stelle mich da vermutlich ein bisschen an.
Robert
Anzeige
AW: Combobox füllen ohne Leerzeilen
16.07.2012 19:04:14
onkelbobby
Hat sich erledigt,
habs anders hinbekommen!
Danke!
AW: Combobox füllen ohne Leerzeilen
16.07.2012 19:05:31
onkelbobby
Sorry,
hier noch meine Lösung:
z = Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.List = Worksheets("Tabelle2").Range("A1:E" & z).Value
AW: Combobox füllen ohne Leerzeilen
16.07.2012 19:54:34
Hajo_Zi
damit machst Du aber kein Auswahl mehr, wie in Deinem ersten Beitrag.
Gruß Hajo
Anzeige
AW: Combobox füllen ohne Leerzeilen
17.07.2012 11:10:23
onkelbobby
Da hatte ich mich wohl falsch ausgedrückt.
In der Tat wollte ich einfach nur die Combo-Box gefüllt bekommen ohne Leerzeiilen.
Danke
;
Anzeige

Infobox / Tutorial

Combobox in Excel füllen ohne Leerzeilen


Schritt-für-Schritt-Anleitung

Um eine Combobox in Excel zu füllen und leere Zeilen zu vermeiden, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass nur die Zellen mit Einträgen in Spalte A in die Combobox eingefügt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Wähle die Tabelle aus, in der sich deine Combobox befindet (z.B. Tabelle1).

  3. Füge den folgenden Code in das Codefenster der Tabelle ein:

    Private Sub Worksheet_Activate()
       Dim rng As Range
       Dim loi As Long
       ComboBox1.Clear
       For Each rng In Worksheets("Tabelle2").Range("A1:E1000")
           If rng <> "" Then
               ComboBox1.AddItem rng.Value
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück. Aktiviere die Tabelle, um die Combobox zu füllen.


Häufige Fehler und Lösungen

  • Leere Einträge in der Combobox: Stelle sicher, dass du den Code im richtigen Bereich (Worksheet) eingefügt hast. Der Worksheet_Activate-Ereignis sollte in der entsprechenden Tabelle sein.

  • Combobox zeigt mehrere Zeilen an: Wenn du mehrere Spalten in einer Zeile anzeigen möchtest, musst du den Code anpassen, um die Werte der Spalten zu kombinieren. Beispiel:

    For loi = 1 To 1000
       If Worksheets("Tabelle2").Cells(loi, 1) <> "" Then
           ComboBox1.AddItem Worksheets("Tabelle2").Cells(loi, 1) & " " & Worksheets("Tabelle2").Cells(loi, 2)
       End If
    Next

Alternative Methoden

Eine alternative Methode zum Füllen der Combobox ohne VBA ist die Verwendung von Datenüberprüfungen. Du kannst eine Liste erstellen und die Option „Dropdown-Liste“ verwenden. Diese Methode ist jedoch weniger dynamisch und aktualisiert sich nicht automatisch bei Änderungen in der Datenquelle.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du eine Combobox füllen kannst, die die Werte aus mehreren Spalten kombiniert:

Private Sub Worksheet_Activate()
    Dim loi As Long
    ComboBox1.Clear
    For loi = 1 To 1000
        If Worksheets("Tabelle2").Cells(loi, 1) <> "" Then
            ComboBox1.AddItem Worksheets("Tabelle2").Cells(loi, 1) & " - " & Worksheets("Tabelle2").Cells(loi, 2)
        End If
    Next loi
End Sub

In diesem Beispiel werden die Werte aus Spalte A und B in einer Zeile angezeigt, getrennt durch ein Minuszeichen.


Tipps für Profis

  • Nutze die With-Anweisung, um den Code effizienter zu gestalten:

    With Worksheets("Tabelle2")
       For loi = 1 To 1000
           If .Cells(loi, 1) <> "" Then
               ComboBox1.AddItem .Cells(loi, 1) & " - " & .Cells(loi, 2)
           End If
       Next loi
    End With
  • Vermeide unnötige Berechnungen, indem du die Anzahl der Zeilen dynamisch ermittelst:

    Dim lastRow As Long
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  • Achte darauf, dass die Combobox im richtigen Modus (z.B. ComboBox1.Style = fmStyleDropDownList) eingestellt ist, um eine bessere Benutzererfahrung zu gewährleisten.


FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehr Spalten anzuzeigen?
Du kannst den Code so anpassen, dass mehrere Spalten kombiniert werden. Verwende die &-Operatoren, um die Inhalte der Zellen zusammenzuführen.

2. Welche Excel-Version wird benötigt, um diesen Code zu verwenden?
Der Code funktioniert in den meisten modernen Excel-Versionen, die VBA unterstützen, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

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