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

Forumthread: ComboBox leere Zeilen nicht Anzeigen

ComboBox leere Zeilen nicht Anzeigen
03.04.2007 09:29:41
Nico
Hallo Leute,
ich hoffe das meine Frage leicht zu beantworten ist. Ich möchte, dass die leeren Zeilen aus dem Abfragebereich in der ComboBox nicht mit angezeigt werden.
Ich frage den Bereich wie folgt ab:
cob01.RowSource = "Text"
Ich danke allen die mir helfen können schon mal! :)
G Nico
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 09:42:25
Oberschlumpf
Hi Nico
Wie funktioniert es mit
cob01.RowSource = "Text"
?
Normal müsste es doch heißen:
cob01.RowSource = A1:A10 z Bsp
also an RowSource wird doch ein Zellbereich übergeben, der die Werte für die Combobox enthält.
Und wenn du mit RowSource arbeitest, werden alle Werte aus dem angegebenen Bereich in der Combobox angezeigt - egal, ob 0, leer oder nich 0 oder nich leer.
Am Bsp mit A1:A10 kannst du es aber so lösen:

Sub InhaltToCBox()
Dim liInhalt As Integer
For liInhalt = 1 to 10
If Range("A" & liInhalt).Value  0 And Range("A" & liInhalt).Value  "" Then
Combobox1.AddItem Range("A" & liInhalt).Value
End If
Next
End Sub
Dieser Code übergibt an die Combox nur Werte, wenn die Werte nicht 0 und nicth leer sind.
Dieser Code dient natürlich nur als Bsp und fubktioniert nur, wenn im Bereich A1:A10 Werte vorhanden sind und wenn die Combobox Combobox1 heißt.
Konnte ich helfen
Ciao
Thorsten
Anzeige
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 10:17:00
Nico
Vielen Dank für das Beispiel. Es funktionier, ist jedoch nicht richtig einsetzbar in meiner Datei.
Da meine Bereiche auf verschiedenen Arbeitsblättern sind, habe ich diesen Bereichen Namen gegeben, um die Anwahl der Arbeitsblätter zu vernmeiden.
Wie kann eben dieser Bereich (Name) so abgefragt werden, dass die leeren Zellen nicht mit angezeigt werden? . . .
G Nico
Anzeige
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 10:59:00
Oberschlumpf
Hi Nico
Da du - wie viele Andere - nix davon erzählst, um welche Bereiche es sich handelt, kann ich leider nur vermuten...und du musst den Code dann für dich anpassen.

Sub InhaltToCBox()
'gilt für EINE Combobox
Dim liInhalt As Integer
With Sheets("DeinTabellenblattname")
For liInhalt = DeineStartZeile to DeineEndeZeile
If .Range("DeineSpalte" & liInhalt).Value  0 And Range("DeineSpalte" & liInhalt). _
Value  "" Then
DeineCombobox.AddItem Range("DeineSpalte" & liInhalt).Value
End If
Next
End With
End Sub

Für weitere Comboboxen musst dui den Code wiederholen und entsprechend anpassen.
dies musst du beachten:
DeinTabellenblattname = der Name des Blattes, in dem sich die Daten befinden, die in der Combobox erscheinen sollen
DeineStartZeile = den Beginn der Zeilen, in denen die Werte stehen, die in die Combox sollen
DeineEndeZeile = das Ende der Zeilen, ...
DeineSpalte = die Spalte, in der sich die Werte befinden, die in die Combobox sollen
DeineCombobox = der Name der Combobox, in die die Werte übertragaen werden sollen
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 11:49:00
Nico
Dankeschön,
ist die Auswertung des Bereiches ausschließlich mit dem Bereichsname möglich? Ohne eine Schleife zu verwenden? Möchte den Programmieraufwand so gering wie möglich halten, da ich unzählige Bereiche habe, die je nach Bedingung (wenn das dann Bereich xy) ausgewählt werden.
G Nico
Anzeige
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 13:04:43
Nico
Danke nochmals für das Bemühen,
ich denke folgende Anweisung ist einfacher:
Dim zelle As Range
Dim bereich
Set bereich = [Text]
For Each zelle In bereich
If zelle.Value "" Then cob01.AddItem zelle.Value
Next
Bye Bye G Nico
AW: ComboBox leere Zeilen nicht Anzeigen
03.04.2007 14:05:00
Oberschlumpf
Hi
Ja, so gehts auch..und einfacher - da hab auch ich wieder was gelernt.
Ciao
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ComboBox in Excel: Leere Zeilen Ausblenden


Schritt-für-Schritt-Anleitung

Um leere Zeilen in einer ComboBox in Excel auszublenden, kannst du folgenden VBA-Code verwenden. Dieser Code überprüft den angegebenen Bereich und fügt nur die Zellen mit Werten zur ComboBox hinzu.

  1. Öffne den VBA-Editor (ALT + F11).
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub InhaltToCBox()
    Dim zelle As Range
    Dim bereich As Range
    Set bereich = [Text] ' Ersetze [Text] mit dem Namen deines Bereichs

    For Each zelle In bereich
        If zelle.Value <> "" Then
            cob01.AddItem zelle.Value ' cob01 ist der Name deiner ComboBox
        End If
    Next
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die ComboBox zu aktualisieren.

Häufige Fehler und Lösungen

  • Fehler: ComboBox bleibt leer

    • Lösung: Überprüfe, ob der Bereich tatsächlich Werte enthält und dass der Name des Bereichs korrekt ist.
  • Fehler: Leere Werte werden trotzdem angezeigt

    • Lösung: Stelle sicher, dass die Bedingung If zelle.Value <> "" im Code korrekt implementiert ist.

Alternative Methoden

Eine alternative Methode besteht darin, die RowSource-Eigenschaft der ComboBox direkt zu setzen. Allerdings werden damit auch leere Werte angezeigt. Ein Beispiel für die Verwendung eines benannten Bereichs lautet:

cob01.RowSource = "BereichName" ' Ersetze BereichName mit dem Namen deines Bereichs

Um leere Zeilen auszublenden, ist die vorherige Methode jedoch effektiver.


Praktische Beispiele

Nehmen wir an, du hast einen Bereich mit dem Namen "Produkte", der in verschiedenen Blättern definiert ist. Der folgende VBA-Code kann verwendet werden, um die ComboBox zu füllen, ohne leere Zeilen anzuzeigen:

Sub FuelleComboBox()
    Dim zelle As Range
    Dim bereich As Range
    Set bereich = Sheets("Blatt1").Range("Produkte") ' Blattname anpassen

    For Each zelle In bereich
        If zelle.Value <> "" Then
            cob01.AddItem zelle.Value
        End If
    Next
End Sub

Tipps für Profis

  • Verwende benannte Bereiche: Dies erleichtert die Verwaltung der Daten und reduziert den Programmieraufwand, insbesondere wenn du mit vielen verschiedenen Bereichen arbeitest.
  • Fehlerbehandlung einbauen: Implementiere eine Fehlerbehandlung im Code, um unerwartete Probleme während der Ausführung zu vermeiden.
  • Code modularisieren: Erstelle separate Subroutinen für häufig verwendete Funktionalitäten, um den Code übersichtlicher und wartungsfreundlicher zu gestalten.

FAQ: Häufige Fragen

1. Kann ich die ComboBox auch ohne VBA anpassen? Ja, du kannst die RowSource-Eigenschaft verwenden, allerdings werden damit auch leere Werte angezeigt.

2. Wie kann ich mehrere ComboBoxen gleichzeitig aktualisieren? Du kannst eine Schleife verwenden, um mehrere ComboBoxen in einer Subroutine zu bedienen, indem du den Code entsprechend anpasst.

3. Funktioniert dieser Code in Excel 365? Ja, der Code ist kompatibel mit Excel-Versionen, die VBA unterstützen, einschließlich Excel 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige