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

Forumthread: Zeilen in Tabelle löschen

Zeilen in Tabelle löschen
23.06.2020 00:06:20
Sven
Hallo,
ich möchte in einer sogenannten intelligenten Tabelle Zeilen mit Bedingung löschen. Aus meiner VBA-Anfangszeit nutze ich folgendes:

Dim i As Integer
For i = Cells(Cells.Rows.Count, 1).End(xlUp).Row To 1 Step -1
On Error Resume Next
If Cells(i, 22) = "löschen" Then Rows(i).Delete
Next

Das hat grundlegend funktioniert. Nur habe ich irgendwann festgestellt, das damit die jeweilige komplette Zeile gelöscht wird. Ist bisher kein Problem gewesen, nun wollte ich das besser machen:

ActiveSheet.ListObjects("Platzhalter").Range.AutoFilter Field:=22, _
Criteria1:="löschen"
Range("Platzhalter").Select
Selection.EntireRow.Delete
Range("Platzhalter[[#Headers],[Nr.]]").Select
Selection.AutoFilter
Wenn nun das Kriterium nicht erfüllt werden kann, weil nichts gelöscht werden soll, werden alle Zeilen entfernt. Wie kann ich das verhindern?
Vielen Dank
Sven A.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen in Tabelle löschen
23.06.2020 01:59:55
Daniel
Hi
Frage vorher ab, ob in der Spalte "löschen" vorkommt und führe das Löschen nur dann aus, wenn ja
If Worksheetfunction.CountIf(Range("Platzhalter").Columns(22), "löschen") > 0 then
' hier dann der Code zum löschen
Ende if
Gruß Daniel
AW: Zeilen in Tabelle löschen
23.06.2020 05:00:37
Sven
Hallo Daniel,
vielen Dank für die schnelle Hilfe.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in einer intelligenten Tabelle löschen


Schritt-für-Schritt-Anleitung

Um Zeilen in einer intelligenten Tabelle in Excel zu löschen, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob das Kriterium "löschen" in der angegebenen Spalte vorhanden ist, bevor er die Zeilen entfernt.

  1. Öffne Excel und gehe zu Entwicklertools > Visual Basic.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere und füge den folgenden Code ein:
Sub ZeilenLoeschen()
    Dim i As Integer
    Dim ws As Worksheet
    Set ws = ActiveSheet

    If WorksheetFunction.CountIf(ws.ListObjects("Platzhalter").ListColumns(22).DataBodyRange, "löschen") > 0 Then
        For i = ws.ListObjects("Platzhalter").ListRows.Count To 1 Step -1
            If ws.ListObjects("Platzhalter").ListRows(i).Range.Cells(1, 22).Value = "löschen" Then
                ws.ListObjects("Platzhalter").ListRows(i).Delete
            End If
        Next i
    Else
        MsgBox "Keine Zeilen zu löschen."
    End If
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus (Entwicklertools > Makros).

Du hast nun erfolgreich die Zeilen in deiner intelligenten Tabelle gelöscht, die das Kriterium "löschen" erfüllen.


Häufige Fehler und Lösungen

  • Fehler: Alle Zeilen werden gelöscht.

    • Lösung: Stelle sicher, dass Du die CountIf-Funktion korrekt verwendest, um die Bedingung zu überprüfen, bevor das Löschen erfolgt.
  • Fehler: Das Makro funktioniert nicht.

    • Lösung: Überprüfe, ob die intelligente Tabelle den Namen "Platzhalter" trägt. Achte darauf, dass die Tabelle korrekt benannt ist.

Alternative Methoden

Wenn Du die Zeilen in einer intelligenten Tabelle ohne VBA löschen möchtest, kannst Du auch die Filterfunktion in Excel nutzen:

  1. Wähle die gesamte Tabelle aus.
  2. Gehe zu Daten > Filter.
  3. Setze einen Filter auf die Spalte, die das Kriterium "löschen" enthält.
  4. Wähle die gefilterten Zeilen aus und lösche sie manuell.

Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast eine intelligente Tabelle mit Verkaufsdaten und möchtest alle Zeilen löschen, bei denen der Verkaufsstatus "storniert" ist. Verwende dazu die oben genannte Methode.

  • Beispiel 2: Wenn Du eine Tabelle hast, die Kundenanfragen enthält, und Du möchtest alle Anfragen mit dem Status "erledigt" entfernen, kannst Du das gleiche VBA-Skript anpassen, um nach "erledigt" zu filtern.


Tipps für Profis

  • Nutze die AutoFilter-Funktion, um die Sichtbarkeit der Daten zu verbessern, bevor Du löschst.
  • Speichere Deine Arbeit regelmäßig, um Datenverlust zu vermeiden, besonders wenn Du mit VBA arbeitest.
  • Experimentiere mit Undo (Strg + Z), falls Du versehentlich die falschen Zeilen gelöscht hast.

FAQ: Häufige Fragen

1. Wie kann ich eine intelligente Tabelle in Excel entfernen?
Um eine intelligente Tabelle zu entfernen, klicke mit der rechten Maustaste auf die Tabelle und wähle Tabelle löschen.

2. Kann ich auch Zeilen in einer Word-Tabelle löschen?
Ja, Du kannst Zeilen in einer Word-Tabelle löschen, indem Du die entsprechenden Zeilen auswählst und Entf drückst oder mit der rechten Maustaste Zeile löschen wählst.

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