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

Eintrag aus Listbox löschen

Forumthread: Eintrag aus Listbox löschen

Eintrag aus Listbox löschen
09.07.2002 10:12:50
Michael
Hallo Forum,

mit folgendem Code such ich einen Begriff (variable such) aus einer listbox aus(Ereignis Click) und lösche dann einen Bereich.

such = Eingabe.lsbFühr.Value

For Each c In Sheets("Daten").Range("AB7:AB2000")
If c.Value = such Then
Set anf = c
Set fert = c.Offset(30, 2)
Range(anf, fert).Clear
End If

Next c


Wie schreibe ich jetzt noch:
Lösche den angeklickten Begriff aus der Listbox?
Hat jemand einen Tipp?

Vielen Dank im voraus,

Michael

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Eintrag aus Listbox löschen
09.07.2002 10:28:45
Walerij Riffel
Hallo Michael,

ich habe nicht genau verstanden was du genau machst, wie deine Listbox gefühlt wird und wann du es löschen aus dem Blatt und dann aus der Liste löschen willst.

Bitte beschreibe es genauer.

MfG

Walerij Riffel

Re: Eintrag aus Listbox löschen
09.07.2002 10:37:28
Michael
Hallo Walerij,

also in Spalte AB stehen Daten(z.B x), die ich mit Additem in der Listbox anzeigen lasse. Zu jedem Wert gebört der Bereich 2 Spalten rechts und 30 Spalten nach unten.

Wenn ich nun x in der Listbox anklicke, wird dieser Datenbereich der zu x gehört gelöscht.

Aber in der Listbox steht ja immer noch das angeklickte x.

Ich müßte also schreiben: Lösche mir den angeklickten Wert in der Listbox-Anzeige. Also der Wert, der gerade auf Value gesetzt ist.

Das ist mein Problem. Ich hoffe es war etwas klarer.

Vielen Dank nochmals im voraus

MIchael

Anzeige
Re: Eintrag aus Listbox löschen
09.07.2002 10:49:02
Walerij Riffel
Ich habe mir schon gedacht das es so funktionieren soll, war mir aber nicht sicher.

Es liegt doch auf der Hand. Ich habe mal aus der Hilfe kleinigkeit rauskopiert. du wählst ja aus der Listbox sowieso aus dann kannst ja auch die Auswahl löschen. Siehe Beispiel.

Ich hoffe das du damit weiter kommst.

MfG

Walerij Riffel

'#####################################################

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
Anzeige

Infobox / Tutorial

Eintrag aus Listbox löschen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Eintrag aus einer Listbox in Excel VBA zu löschen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne das Visual Basic for Applications (VBA) Fenster: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein UserForm hinzu: Klicke mit der rechten Maustaste auf dein Projekt und wähle „Einfügen“ > „UserForm“.
  3. Füge eine ListBox und zwei CommandButtons hinzu: Ziehe die Steuerelemente auf das UserForm.
  4. Benenne die Steuerelemente: Setze die Namen der ListBox auf ListBox1 und die CommandButtons auf CommandButton1 (zum Hinzufügen) und CommandButton2 (zum Entfernen).
  5. Füge den folgenden Code in das UserForm ein:
Dim EntryCount As Single

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

Private Sub CommandButton2_Click()
    ListBox1.SetFocus
    If ListBox1.ListCount >= 1 Then
        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
  1. Testen: Führe das UserForm aus, indem Du den Debugger benutzt oder F5 drückst. Füge einige Einträge hinzu und teste das Löschen.

Häufige Fehler und Lösungen

  • Fehler: ListBox ist leer und es wird versucht, ein Element zu löschen.

    • Lösung: Stelle sicher, dass die ListBox mindestens ein Element enthält, bevor Du den Löschbefehl ausführst. Dies kann durch eine einfache If-Abfrage geschehen, wie es im obigen Code gezeigt wird.
  • Fehler: Der Wert wird nicht aus der ListBox entfernt.

    • Lösung: Überprüfe, ob die ListIndex korrekt gesetzt ist. Wenn kein Element ausgewählt ist, setze ListIndex auf das letzte Element.

Alternative Methoden

Eine alternative Methode, um die Listbox zu leeren, ist die Verwendung der Clear-Methode:

ListBox1.Clear

Damit werden alle Einträge in der ListBox gelöscht. Dies kann sinnvoll sein, wenn Du die gesamte Liste zurücksetzen möchtest.


Praktische Beispiele

Beispiel 1: Einträge in der ListBox anzeigen und löschen

In diesem Beispiel werden Einträge zur ListBox hinzugefügt, und Du kannst den zuletzt hinzugefügten Eintrag löschen.

Beispiel 2: Eintrag löschen basierend auf einer Bedingung

Wenn Du einen bestimmten Eintrag löschen möchtest, kannst Du die RemoveItem-Methode in einer Schleife verwenden, um gezielt Einträge zu entfernen.

Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.List(i) = "Bestimmter Eintrag" Then
        ListBox1.RemoveItem (i)
        Exit For
    End If
Next i

Tipps für Profis

  • Verwende With...End With: Wenn Du mehrere Aktionen auf derselben ListBox ausführen möchtest, kann das den Code lesbarer machen.
With ListBox1
    .AddItem "Neuer Eintrag"
    .RemoveItem .ListIndex
End With
  • Verwende ListCount: Dies hilft Dir, die Anzahl der Elemente in der ListBox schnell zu überprüfen, bevor Du Löschoperationen durchführst.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox leeren? Du kannst die ListBox einfach mit der Clear-Methode leeren: ListBox1.Clear.

2. Wie lösche ich mehrere Einträge auf einmal? Du kannst eine Schleife verwenden, um alle unerwünschten Einträge zu entfernen. Achte darauf, dass die Schleife rückwärts durchlaufen wird, um Indexprobleme zu vermeiden.

3. Was ist der Unterschied zwischen RemoveItem und Clear? RemoveItem löscht einen spezifischen Eintrag, während Clear alle Einträge in der ListBox entfernt.

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