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

Alle Listboxeinträge löschen

Forumthread: Alle Listboxeinträge löschen

Alle Listboxeinträge löschen
23.09.2003 13:43:13
Folker
Hallo

ich habe in einer Userform eine Kombobox und eine Listbox. Abhängig davon was in meiner Combobox angezeigt wird, sollen die Einträge der Listbox geändert werden. Also erst die Listbox löschen (hier liegt das Problem) und dann die neuen Werte einlesen.
Ist eigentlich ganz einfach nur bringe ich einfach die removeitem Geschichte nicht hin.
Ich brauche nur einen Code der mir alle Einträge einer Listbox löscht.

For i = 0 To ListBox1.ListCount
ListBox1.RemoveItem i
Next

Für mich wäre dies hier einleuchtend gewesen, allerdings löscht er damit nur jeden zweiten Eintrag und schmeisst dann einen Fehler, weil er am Ende der Items angelangt ist. Ist der Index hier immer in 0,5 Schritten, oder gibts hier eine einfachere Löung removeAllItems gibts hier nicht.

Danke
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Alle Listboxeinträge löschen
23.09.2003 13:52:02
Hajo_Zi
Hallo Folker

liege ich da Falsch

Listbox1.Clear


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.


http://home.media-n.de/ziplies/

Anzeige
listbox1.clear o.t.
23.09.2003 13:52:41
Andi_H
AW: Alle Listboxeinträge löschen
23.09.2003 13:53:19
Willie
Hast du in der Hilfe schon mal dieses Beispiel ausprobiert?
Gruß
Willie

In dem folgenden Beispiel werden einem Listenfeld-Steuerelement (ListBox) Einträge hinzugefügt oder diese gelöscht. Dabei werden die Methoden AddItem, RemoveItem und SetFocus und die Eigenschaften ListIndex und ListCount verwendet.
Wenn Sie dieses Beispiel verwenden möchten, kopieren Sie den Beispiel-Code in den Deklarationsabschitt eines Formulars. Stellen Sie sicher, daß das Formular folgendes enthält:

· Ein Listenfeld mit dem Namen ListBox1.
· Zwei Befehlsschaltfläche-Steuerelemente (CommandButton) mit den Namen CommandButton1 und CommandButton2.

Dim EntryCount As Single

Private Sub CommandButton1_Click()
EntryCount = EntryCount + 1
ListBox1.AddItem (EntryCount & " - Auswahl")
End Sub



Private Sub CommandButton2_Click()
ListBox1.SetFocus
'Sicherstellen, das Listenfeld Listenelemente enthält
If ListBox1.ListCount >= 1 Then
'Wenn kein Element ausgewählt wurde, letztes Element der Liste wählen.
If ListBox1.ListIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount - 1
End If
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End Sub



Private Sub UserForm_Initialize()
EntryCount = 0
CommandButton1.Caption = "Element hinzufügen"
CommandButton2.Caption = "Element entfernen"
End Sub


Copyright(c) 1996 Microsoft Corporation.
Anzeige
AW: Alle Listboxeinträge löschen
23.09.2003 14:02:54
Folker
Wusst ich doch dass es da was ganz einfaches geben muss :)

Danek an alle
Danke für Rückmeldung oT
23.09.2003 14:13:48
Hajo_Zi
;
Anzeige

Infobox / Tutorial

Alle Listboxeinträge in Excel VBA löschen


Schritt-für-Schritt-Anleitung

Um die Einträge einer Listbox in Excel VBA zu löschen, kannst du die Clear-Methode verwenden. Diese Methode ist einfach und effektiv, um alle Einträge auf einmal zu entfernen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge eine Userform hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ und wähle „Einfügen“ > „UserForm“.

  3. Füge eine Listbox hinzu: Ziehe das ListBox-Steuerelement aus der Toolbox in die Userform.

  4. Füge einen Button hinzu: Ziehe ein CommandButton-Steuerelement in die Userform.

  5. Füge den folgenden Code hinzu: Doppelklicke auf den CommandButton und füge diesen Code ein:

    Private Sub CommandButton1_Click()
       ListBox1.Clear ' Alle Einträge in der Listbox löschen
    End Sub
  6. Starte die Userform: Schließe den VBA-Editor und starte die Userform, um die Funktionalität zu testen.


Häufige Fehler und Lösungen

  • Fehler beim Löschen: Wenn du versuchst, die Listbox mit RemoveItem zu leeren und nur jeden zweiten Eintrag gelöscht wird, liegt das daran, dass sich die Indizes der Listbox ändern, während du sie durchläufst. Verwende stattdessen ListBox1.Clear, um alle Einträge auf einmal zu entfernen.

  • Listbox nicht gefunden: Stelle sicher, dass der Name der Listbox im Code mit dem Namen in deiner Userform übereinstimmt. Wenn die Listbox nicht gefunden wird, kann der Code nicht funktionieren.


Alternative Methoden

Neben der Clear-Methode gibt es auch andere Möglichkeiten, eine Listbox zu leeren:

  1. Manuelles Entfernen: Du kannst die Einträge einzeln mit RemoveItem entfernen, jedoch musst du dabei rückwärts durch die Liste iterieren, um Probleme mit den Indizes zu vermeiden:

    For i = ListBox1.ListCount - 1 To 0 Step -1
       ListBox1.RemoveItem i
    Next i
  2. Zuweisen einer leeren Liste: Eine andere Möglichkeit ist, die Listbox einer leeren Liste zuzuweisen:

    ListBox1.List = Array()

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du mit einer Listbox arbeiten kannst:

Dim EntryCount As Single

Private Sub CommandButton1_Click()
    EntryCount = EntryCount + 1
    ListBox1.AddItem (EntryCount & " - Auswahl") ' Neuen Eintrag hinzufügen
End Sub

Private Sub CommandButton2_Click()
    ListBox1.Clear ' Alle Einträge löschen
End Sub

Private Sub UserForm_Initialize()
    EntryCount = 0
    CommandButton1.Caption = "Element hinzufügen"
    CommandButton2.Caption = "Alle Einträge löschen"
End Sub

In diesem Beispiel kannst du Einträge hinzufügen und alle Einträge mit einem Klick auf den Button löschen.


Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um sicherzustellen, dass der Benutzer nicht versuchen kann, eine leere Listbox zu löschen.
  • Dynamische Inhalte: Wenn deine Listbox oft aktualisiert wird, überlege, ob du die Clear-Methode vor dem Hinzufügen neuer Einträge verwenden solltest, um die Liste aktuell zu halten.
  • Kombination mit anderen Steuerelementen: Du kannst die Listbox in Kombination mit anderen Steuerelementen wie ComboBoxen verwenden, um dynamische Benutzeroberflächen zu erstellen.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Einträge aus einer Listbox löschen?
Du kannst spezifische Einträge mit RemoveItem und dem entsprechenden Index entfernen. Beispiel:

ListBox1.RemoveItem Index ' Ersetze Index durch die Position des zu löschenden Eintrags

2. Gibt es eine Methode, um nur die Sichtbarkeit der Listbox zu steuern?
Ja, anstelle der Einträge zu löschen, kannst du die Sichtbarkeit der Listbox steuern, indem du die Visible-Eigenschaft verwendest:

ListBox1.Visible = False ' Listbox ausblenden

Diese Informationen sollten dir helfen, deine Listbox in Excel VBA effektiv zu verwalten und alle Einträge einfach zu löschen.

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