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

Forumthread: Listbox.list wieder leeren

Listbox.list wieder leeren
21.11.2005 16:33:50
Helmut
Hallo Zusammen, habe leider immer noch das Problem!
Kann mir hierzu jemand einen weiteren Lösungsansatz geben?
(Siehe auch meine erste Frage von heutigem Datum!)
Frage:
Ich übergebe an eine Listbox1 in der Userform uf1 eine Tabelle mit dem Namen tabelle2. Dieses mach ich, indem ich diese Anweisung nutze: uf1.listbox1.list=tabelle2
Das ist auch alles in Ordnung. Jetzt möchte ich allerdings in einem weiteren Schritt eine tabelle1 an die listbox1 weitergeben. Dieses wollte ich genauso machen wie oben beschrieben. Das funktioniert nicht! In der VBA Hilfe habe ich nachlesen können, dass der Inhalt von "list" bei einer "jungfräulichen" Listbox leer ist. Es steht auch in der Hilfe, dass eine gefüllte "listbox1.list" zum Fehler führt (was bei mir auch das Problem ist). Leider habe ich nicht gefunden, wo der Hinweis steht, wie ich listbox1.list wieder "jungfräulich" bzw. leer bekomme. Habe mit clear und einigen anderen Sachen experimentiert, leider ohne Erfolg.
Hat da jemand von Euch eine Idee zu?
Vielen Dank im Voraus!!!
Gruß,
Helmut Palmen
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox.list wieder leeren
21.11.2005 16:52:54
Ingo
in Modul der Userform
me.listbox1.clear
mfG
Ingo christiansen
AW: Listbox.list wieder leeren
21.11.2005 18:53:32
Helmut
Hallo Ingo,
me.listbox1.clear ist nicht machbar!!! Das Programm sagt dann, dass diese Funktion nicht möglich sei!
Andere Ideen?
Gruß,
Helmut
AW: Listbox.list wieder leeren
21.11.2005 19:12:43
Leo
Hi,
lad diw Problemmappe mal abgespeckt hoch.
mfg Leo
Anzeige
AW: Listbox.list wieder leeren
21.11.2005 16:58:37
Dan
Hallo Helmut, ich weiss nicht ob ich Dein Problem richtig verstehe. HIer ein Beispiel, wie man eine ListBox fuellen kann. Man braucht dazu UserForm, zwei buttons enschprechend benannt und eine ListBox. Wie Du siehst, ist 'ausleeren' der ListBox gar nicht noetig. Gruss Dan cz.
Option Explicit

Private Sub fill_from_array_Click()
Dim liste(0 To 5) As String
liste(0) = "aaa"
liste(1) = "bbb"
liste(2) = "ccc"
liste(3) = "ddd"
liste(4) = "eee"
liste(5) = "fff"
Me.ListBox1.List = liste
End Sub


Private Sub Fill_from_sheet_range_Click()
Me.ListBox1.List = Range("a1:c5").Value
End Sub

Anzeige
AW: Listbox.list wieder leeren
21.11.2005 18:50:56
Helmut
Hallo Dan,
das füllen der Listbox ist für mich kein Thema. Leider ist das Füllen der Listbox über listbox.list beim 2. oder 3. Versuch dann nicht mehr machbar! So steht es auch in der Hilfe. In der Hilfe steht auch, das listbox.list leer sein muss bevor neu gefüllt werden kann! Vielleicht noch wichtig zu wissen: in dem ersten Fall von Listbox.list=tabelle1 handelt es sich um eine einspaltige Tabelle. Dann soll in einem 2. Schritt eine 3spaltige Tabelle mit dem Namen tabelle2 über listbox.list geladen und angezeigt werden! Und genau das geht nicht (wie es richtigerweise auch in der Hilfe steht!). Ich weiß nur nicht, wie ich die alte Tabelle1 aus listbox.list entfernen kann. Genau das steht nicht in der Hilfe!
Listbox.clear is nicht!!!!!!
Gruß,
Helmut
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Listbox in Excel VBA erfolgreich leeren


Schritt-für-Schritt-Anleitung

Um eine Listbox in Excel VBA zu leeren, kannst Du folgende Schritte befolgen:

  1. Öffne Deine UserForm: Stelle sicher, dass Du die UserForm mit der Listbox, die Du leeren möchtest, geöffnet hast.

  2. Verwende die Clear-Methode: In Deinem VBA-Code kannst Du die Listbox mit der Clear-Methode leeren. Hier ist ein Beispiel:

    Me.ListBox1.Clear
  3. Alternativen zur Clear-Methode: Wenn die Clear-Methode nicht funktioniert, kannst Du auch die RowSource-Eigenschaft auf einen leeren String setzen:

    Me.ListBox1.RowSource = ""
  4. Fülle die Listbox neu: Nach dem Leeren kannst Du die Listbox erneut mit neuen Werten füllen, z.B.:

    Me.ListBox1.List = Range("tabelle2").Value

Häufige Fehler und Lösungen

  • Fehler bei der Verwendung von Clear: Wenn Du die Fehlermeldung erhältst, dass die Funktion nicht möglich ist, könnte es sein, dass Du die Clear-Methode nicht im richtigen Kontext verwendest. Stelle sicher, dass Du den Code innerhalb der UserForm ausführst, in der die Listbox definiert ist.

  • Listbox bleibt gefüllt: Wenn die Listbox nach dem Leeren immer noch Werte anzeigt, könnte es daran liegen, dass Du die RowSource-Eigenschaft nicht zurücksetzt. Verwende die folgende Zeile, um die Listbox zu leeren:

    Me.ListBox1.RowSource = ""

Alternative Methoden

Falls die oben genannten Methoden nicht funktionieren, gibt es alternative Möglichkeiten, um eine Excel VBA Listbox zu leeren:

  • Verwendung von Arrays: Anstatt die Listbox direkt zu leeren, kannst Du sie auch mit einem leeren Array füllen:

    Dim leeresArray(0 To 0) As String
    Me.ListBox1.List = leeresArray
  • Zugriff auf die List-Eigenschaft: Du kannst auch direkt die List-Eigenschaft manipulieren, indem Du sie auf Null setzt:

    Me.ListBox1.List = Array()

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du eine Listbox in Excel VBA leeren und wieder befüllen kannst:

  1. Leeren einer Listbox beim Klick auf einen Button:

    Private Sub btnClear_Click()
       Me.ListBox1.Clear
    End Sub
  2. Füllen der Listbox nach dem Leeren:

    Private Sub btnFill_Click()
       Me.ListBox1.Clear
       Me.ListBox1.List = Range("A1:A10").Value
    End Sub
  3. Leeren mit RowSource:

    Private Sub btnReset_Click()
       Me.ListBox1.RowSource = ""
       Me.ListBox1.List = Range("B1:B10").Value
    End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinem Code, um Probleme beim Leeren der Listbox zu identifizieren.

    On Error Resume Next
    Me.ListBox1.Clear
  • Regelmäßige Überprüfung des Codes: Überprüfe regelmäßig, ob alle Werte in der Listbox korrekt angezeigt werden, insbesondere nach Änderungen in der Datenquelle.

  • Optimierung der Ladezeiten: Wenn Du große Datenmengen in die Listbox laden möchtest, erwäge, die Listbox vorübergehend unsichtbar zu machen, um die Ladezeiten zu optimieren.


FAQ: Häufige Fragen

1. Warum funktioniert Me.ListBox1.Clear nicht?
Es kann sein, dass Du versuchst, die Methode außerhalb des richtigen Kontexts aufzurufen. Stelle sicher, dass der Code innerhalb der UserForm ausgeführt wird.

2. Gibt es eine Methode, um die Listbox schnell zu leeren?
Ja, die Verwendung von RowSource auf einen leeren String ist eine schnelle Methode, um die Listbox zu leeren.

3. Wie kann ich mehrere Listboxen gleichzeitig leeren?
Du kannst die Clear-Methode oder RowSource für jede Listbox in einer Schleife aufrufen.

4. Funktioniert das Leeren der Listbox in allen Excel-Versionen?
Ja, die beschriebenen Methoden sind in den meisten Versionen von Excel VBA anwendbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige