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

Listview Zeilen löschen

Forumthread: Listview Zeilen löschen

Listview Zeilen löschen
10.06.2016 11:11:46
baschti007
Halli Hallo liebe User einen schönen Freitag euch allen
Ich möchte in einem Listview Zeilen Löschen in denen im SubItem "NEIN" steht,
bis jetzt habe ich diesen Code. Der auch so weit funktioniert bis kurz vor dem Ende.
Sub Löschen()
For y = 1 To ListView1.ListItems.Count - 1
If ListView1.ListItems(y).ListSubItems(9).Text = "JA" Then
MsgBox ListView1.ListItems(y).ListSubItems(9).Index & " JA"
Else
MsgBox ListView1.ListItems(y).ListSubItems(9).Index & " NEIN"
ListView1.ListItems.Remove (ListView1.ListItems(y).Index)
y = y - 1
End If
Next
End Sub
Gruß Basto

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listview Zeilen löschen
10.06.2016 11:18:48
baschti007
Oh ich habs nun denke ich =D
Sub Kopieren
For y = 1 To ListView1.ListItems.Count
If ListView1.ListItems(y - i).ListSubItems(9).Text = "JA" Then
Else
ListView1.ListItems.Remove (ListView1.ListItems(y - i).Index)
i = i + 1
End If
Next
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Zeilen im ListView löschen: So geht's


Schritt-für-Schritt-Anleitung

Um Zeilen in einem ListView zu löschen, die im SubItem "NEIN" stehen, kannst Du den folgenden VBA-Code verwenden. Dieser Code durchläuft alle Einträge und entfernt die entsprechenden Zeilen.

  1. Öffne den Visual Basic for Applications (VBA)-Editor in Excel.
  2. Füge ein neues Modul hinzu.
  3. Kopiere den folgenden Code in das Modul:
Sub Löschen()
    Dim y As Integer
    For y = ListView1.ListItems.Count To 1 Step -1
        If ListView1.ListItems(y).ListSubItems(9).Text = "NEIN" Then
            ListView1.ListItems.Remove (ListView1.ListItems(y).Index)
        End If
    Next y
End Sub
  1. Schließe den VBA-Editor und führe die Subroutine aus.

Dieser Code sorgt dafür, dass alle Zeilen, in denen im SubItem 9 "NEIN" steht, aus dem ListView gelöscht werden.


Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass Du mit dem Index von 1 bis zur Anzahl der ListItems iterierst und das ListItems.Count korrekt verwendest.
  • Fehler: Zeilen werden nicht gelöscht

    • Lösung: Überprüfe, ob der Text im SubItem genau "NEIN" ist (Achte auf Groß- und Kleinschreibung).

Alternative Methoden

Falls Du eine andere Methode ausprobieren möchtest, kannst Du auch den folgenden Code verwenden, der nur die Zeilen entfernt, die "NEIN" beinhalten, und eine Bestätigung ausgibt.

Sub Kopieren()
    Dim i As Integer
    i = 0
    For y = 1 To ListView1.ListItems.Count
        If ListView1.ListItems(y - i).ListSubItems(9).Text = "NEIN" Then
            ListView1.ListItems.Remove (ListView1.ListItems(y - i).Index)
            i = i + 1
        End If
    Next y
End Sub

Diese Methode nutzt einen Zähler, um die Anzahl der entfernten Items zu tracken.


Praktische Beispiele

  • Beispiel 1: Löschen von Zeilen, die "NEIN" im 9. SubItem haben.
  • Beispiel 2: Wenn Du spezifische Filterkriterien hast, passe die Bedingung im If-Statement entsprechend an.
If ListView1.ListItems(y).ListSubItems(9).Text = "DEAKTIVIERT" Then
    ListView1.ListItems.Remove (ListView1.ListItems(y).Index)
End If

Diese Anpassung ermöglicht es Dir, auch andere Status zu berücksichtigen.


Tipps für Profis

  • Verwende Step -1 in der Schleife, um von hinten nach vorne zu iterieren. So verhinderst Du, dass der Index bei Löschvorgängen durcheinander gerät.
  • Teste Deinen Code in einer sicheren Umgebung, um Datenverluste zu vermeiden.
  • Nutze Debugging-Werkzeuge in VBA, um den Code Schritt für Schritt zu überprüfen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehrere SubItems zu prüfen?
Du kannst einfach weitere If-Bedingungen in der Schleife hinzufügen, um mehrere SubItems zu berücksichtigen.

2. Funktioniert dieser Code in Excel 2016?
Ja, der Code ist mit Excel 2016 und späteren Versionen kompatibel, solange Du VBA verwenden kannst.

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