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

Forumthread: ListFillRange in ComboBox

ListFillRange in ComboBox
Rainer
Hallo,
kann man, wenn man eine ComboBox innerhalb des Arbeitsblattes nutz in den Eigenschaften den ListFillRange auch auf die Inhalte ab Zeile x festlegen oder ist das nur bei der ComboBox innerhalb der UserForm möglich?
Beispiel: Momentan habe ich ListFillRange = F71:F99
Daten sind momentan aber nur in F71 bis F75 enthalten und werden nach Bedarf ergänzt.
Bei der ComboBox hätte ich nun gerne F71:("letzerEintrag ab F71")
Gruß Rainer
Anzeige

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

Betreff
Benutzer
Anzeige
AW: ListFillRange in ComboBox
21.12.2009 13:19:17
Hajo_Zi
Hallo Rainer,
das mußt Du per VBA realisieren.

AW: ListFillRange in ComboBox
21.12.2009 13:33:20
Daniel
Hi
wenn du die Combobox der Formularfelder verwenden würdest, dann könntest du die Automatische Anpassung über einen Dynamischen Namen erledigen, dh einen Zellbezug als berechneten Namen definieren, der sich an die Datenmenge anpasst (z.B. über BEREICH.VERSCHIEBEN mit ANZAHL2) und diesen Namen als Datenquelle für die Combobx angibst.
das funktioniert aber wie gesagt nur bei Formularfeld-Comboboxen so bequem, bei Steuerelementen muss das wie Hajo schon beschrieben hat, ausprogrammiert werden.
Gruß, Daniel
Anzeige
AW: ListFillRange in ComboBox
21.12.2009 14:00:37
Rainer
Hallo,
Danke für Eure Antworten.
Leider kenne ich mich mit VBA nicht so gut aus.
Habe es allerdings geschafft, mir den Bereich mit einer UserForm zur Pflege der Einträge einzurichten.
In dieser UserForm habe ich es bereits eine ListBox, welche exakt diese Daten aufruft.
Kann ich hier einen Bezug herstellen oder muss das eigenständig ausprogrammiert werden?
Gruß Rainer
Anzeige
AW:probiers doch einfach selbst aus owt
21.12.2009 14:49:57
Daniel
Gruß, Daniel
AW: ListFillRange in ComboBox
21.12.2009 17:20:39
Jens
Hallo
Worksheets("DeineTabelle").ComboBox1.ListFillRange = ("F71:F" & Range("F65536").End(xlUp).Row)
Gruß Jens
AW: ListFillRange in ComboBox
21.12.2009 21:39:35
Rainer
Hallo Jens,
danke für Deine Info.
Ist so finde ich (ohne die Leerzeilen) gleich um einiges besser in der Darstellung.
Gruß Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamisches ListFillRange für ComboBox in Excel


Schritt-für-Schritt-Anleitung

Um eine ComboBox in Excel mit einem dynamischen ListFillRange zu füllen, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, wo deine ComboBox ist.
  2. Öffne den VBA-Editor:
    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Finde das richtige Arbeitsblatt:
    • Suche im Projekt-Explorer nach dem entsprechenden Arbeitsblatt.
  4. Füge das folgende VBA-Skript ein:
    Private Sub Worksheet_Activate()
       Dim lastRow As Long
       lastRow = Range("F65536").End(xlUp).Row
       Me.ComboBox1.ListFillRange = "F71:F" & lastRow
    End Sub
    • Dieses Skript setzt den ListFillRange der ComboBox automatisch auf die Zellen von F71 bis zur letzten belegten Zeile in Spalte F.
  5. Speichere deine Änderungen und schließe den VBA-Editor.
  6. Teste deine ComboBox, indem du das Arbeitsblatt aktivierst. Die Liste sollte nun dynamisch aktualisiert werden.

Häufige Fehler und Lösungen

  • Fehler: ComboBox zeigt keine Werte an
    Lösung: Stelle sicher, dass der ListFillRange korrekt definiert ist und dass die ComboBox tatsächlich auf das Arbeitsblatt verweist, auf dem du das VBA-Skript hinzugefügt hast.

  • Fehler: Der VBA-Code wird nicht ausgeführt
    Lösung: Vergewissere dich, dass du das Skript im richtigen Arbeitsblatt-Objekt eingefügt hast und dass die Makros in den Excel-Einstellungen aktiviert sind.


Alternative Methoden

Falls du die ComboBox nicht über VBA steuern möchtest, kannst du auch eine dynamische benannte Formel verwenden:

  1. Erstelle einen dynamischen Namen:
    • Gehe zu Formeln > Namensmanager > Neu.
    • Setze den Namen (z.B. DynamischeListe) und als Formel:
      =BEREICH.VERSCHIEBEN(Tabelle1!$F$71;0;0;ANZAHL2(Tabelle1!$F$71:$F$99);1)
  2. Verwende diesen Namen als ListFillRange in der ComboBox.

Diese Methode ist besonders nützlich, wenn du die combobox listfillrange ohne VBA nutzen möchtest.


Praktische Beispiele

  • Beispiel 1: Füllst du die ComboBox mit Werten aus einer Liste, die sich in F71:F99 befindet. Mit dem oben genannten VBA-Skript wird der Bereich automatisch angepasst, wenn neue Werte hinzugefügt werden.

  • Beispiel 2: Verwende die dynamische benannte Formel, um die ComboBox mit einer Liste aus einer anderen Tabelle zu füllen. Dies ist besonders nützlich, wenn du Werte aus mehreren Quellen zusammenführen möchtest.


Tipps für Profis

  • Verwende Worksheet_Change-Ereignis: Um die ComboBox automatisch zu aktualisieren, wenn sich die Daten ändern, kannst du das Worksheet_Change-Ereignis verwenden.

  • Optimiere deinen VBA-Code: Achte darauf, unnötige Berechnungen zu vermeiden, indem du die Application.ScreenUpdating-Eigenschaft auf False setzt, während der Code ausgeführt wird.


FAQ: Häufige Fragen

1. Wie kann ich mehrere ComboBoxes mit unterschiedlichen Bereichen füllen?
Du kannst für jede ComboBox ein eigenes VBA-Skript verwenden, das den spezifischen ListFillRange für jede ComboBox anpasst.

2. Funktioniert das auch in Excel Online?
VBA wird in Excel Online nicht unterstützt. Du kannst jedoch die benannten Bereiche verwenden, um eine ähnliche Funktionalität zu erreichen.

3. Kann ich die ComboBox auch in einer UserForm verwenden?
Ja, die Verwendung von ListFillRange funktioniert auch in einer UserForm. Du musst sicherstellen, dass du den richtigen Bezug zur UserForm herstellst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige