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

Forumthread: Listfillrange Listbox

Listfillrange Listbox
25.09.2015 16:06:20
Lisa
Hallo zusammen, ich habe auf meinem Tabellenblatt1 eine Listbox2.
Diese will ich mit einem Makro befüllen.
Meine Vorgehensweise bisher.
Für den Bereich der Tabelle2 habe ich einen Namen vergeben.
Namen definieren für Tabelle2! A1:C10, Name = VPI
Commandbutton1 auf Tabelle1! ruft die Listbox2 auf und soll sie füllen.
Private Sub CommandButton1_Click()
With ListBox2
.Visible = True
.ListFillRange = VPI
End With
End Sub
so jedenfalls die Theorie.
Es passiert nichts, also die Listbox2 wird aufgerufen, sie bleibt aber leer, nicht einmal ein debugger.
Was ist falsch? ich habe keine Ahnung und benötige bitte einmal vor dem Wochenende eure Hilfe.
LG Lisa

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listfillrange Listbox
25.09.2015 16:23:03
Beverly
Hi Lisa,
vrsuche es mal so:
        .ListFillRange = "Tabelle2!" & Range("VPI").Address



.ListFillRange = "VPI" owT
25.09.2015 16:27:53
robert

AW: Listfillrange Listbox
25.09.2015 16:28:56
matthias
Hallo Lisa,
das liegt daran, dass VPI eine Variable darstellt. Die Variable ist Null, also gibt es erstmal keinen Fehler, aber weiter bringt es dich nicht.
Wenn du den Makro-Recorder anschmeist und deinen Bereich einmal bearbeitest und gleich wieder auf ok klickst, siehst du wie VBA mit einem Bereich umgeht.
Fazit - es muss lauten:
.ListFillRange = ThisWorkbook.Names("VBI")
lg Matthias

Anzeige
AW: Listfillrange Listbox
01.10.2015 15:16:57
Lisa
Hallo Matthias, diese Lösung ist der entscheidene Hinweis und funktioniert wie gewünscht.
Herzlichen Dank.
LG Lisa

AW: Listfillrange Listbox
01.10.2015 15:09:09
Lisa
Hallo und vielen Dank für Eure Hilfe.
Ich war ein paar Tage krank und hatte keine Möglichkeit zu antworten.
Das will ich nun nachholen.
Ihr habt mir sehr geholfen, klappt nun wie gewünscht.
Liebe Grüße Lisa
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Listfillrange für ActiveX Listbox und Combobox in Excel


Schritt-für-Schritt-Anleitung

Um eine ActiveX Listbox oder Combobox in Excel mithilfe des ListFillRange-Eigenschaft zu befüllen, folge diesen Schritten:

  1. Erstelle eine Tabelle in Excel, die die Daten enthält, die du in der Listbox oder Combobox anzeigen möchtest. Zum Beispiel: Tabelle2!A1:C10.
  2. Definiere einen Namen für den Bereich. Gehe zu Formeln > Namensmanager und erstelle den Namen, z.B. VPI.
  3. Füge eine ActiveX Listbox oder Combobox auf dein Arbeitsblatt hinzu. Gehe zu Entwicklertools > Einfügen und wähle die entsprechende Kontrolle aus.
  4. Füge einen CommandButton hinzu, der das Makro auslöst.
  5. Schreibe das VBA-Makro für den CommandButton. Hier ist ein einfaches Beispiel:
Private Sub CommandButton1_Click()
    With ListBox2
        .Visible = True
        .ListFillRange = "Tabelle2!" & Range("VPI").Address
    End With
End Sub
  1. Teste das Makro, indem du auf den Button klickst. Die Listbox sollte nun mit den Daten aus dem definierten Bereich gefüllt werden.

Häufige Fehler und Lösungen

  • Listbox bleibt leer: Stelle sicher, dass der Name des definierten Bereichs korrekt geschrieben ist. In einigen Fällen kann es hilfreich sein, die Syntax so zu ändern:

    .ListFillRange = ThisWorkbook.Names("VPI").RefersToRange.Address
  • Variable ist Null: Wenn du den Namen als Variable verwendest, überprüfe, ob er tatsächlich auf einen gültigen Bereich verweist. Führe den Makro-Recorder aus, um zu sehen, wie VBA mit dem Bereich umgeht.

  • ActiveX-Steuerelemente funktionieren nicht: Manchmal kann es an den Sicherheitseinstellungen liegen. Stelle sicher, dass die ActiveX-Steuerelemente in Excel aktiviert sind.


Alternative Methoden

Falls du die Listbox nicht mit ListFillRange befüllen möchtest, kannst du auch die AddItem-Methode verwenden. So kannst du die Elemente manuell hinzufügen:

Private Sub CommandButton1_Click()
    With ListBox2
        .Visible = True
        .Clear ' Vorherige Einträge löschen
        .AddItem "Eintrag 1"
        .AddItem "Eintrag 2"
        .AddItem "Eintrag 3"
    End With
End Sub

Diese Methode ist besonders nützlich, wenn du dynamische Inhalte hast oder die Daten nicht in einem festgelegten Bereich liegen.


Praktische Beispiele

  1. Befüllung einer Listbox aus einem definierten Bereich:

    Private Sub CommandButton1_Click()
        ListBox1.ListFillRange = "VPI"
    End Sub
  2. Befüllung einer Combobox mit Werten:

    Private Sub CommandButton2_Click()
        With ComboBox1
            .Clear
            .AddItem "Option 1"
            .AddItem "Option 2"
            .AddItem "Option 3"
        End With
    End Sub
  3. Verwendung von ListFillRange in einer Combobox:

    Private Sub CommandButton3_Click()
        ComboBox1.ListFillRange = "Tabelle2!A1:A10"
    End Sub

Tipps für Profis

  • Namen dynamisch aktualisieren: Wenn sich der Bereich ändert, kannst du VBA verwenden, um den Namen dynamisch zu aktualisieren. Dies ist besonders nützlich in großen Datensätzen.

  • Verwendung von Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass dein Makro robust ist und unerwartete Fehler abfängt.

  • Optimierung der Performance: Wenn du große Datenmengen verwendest, kann es hilfreich sein, die Sichtbarkeit der Listbox oder Combobox erst nach dem Befüllen zu aktivieren, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Listbox nach dem Befüllen sortieren?
Du kannst die Elemente in der Listbox nach dem Befüllen sortieren, indem du sie zuerst in ein Array kopierst, das Array sortierst und dann die sortierten Werte wieder in die Listbox einfügst.

2. Kann ich mehrere Bereiche in einer Listbox anzeigen?
Ja, du kannst die AddItem-Methode verwenden, um mehrere Bereiche hinzuzufügen. Du musst jedoch jeden Eintrag manuell hinzufügen.

3. Funktioniert das in allen Excel-Versionen?
Ja, die Verwendung von ListFillRange und ActiveX-Steuerelementen ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und 2019.

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