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

Forumthread: Autofilter-gefilterte Zeilen löschen

Autofilter-gefilterte Zeilen löschen
03.12.2021 23:04:40
Anastasia
Hallo liebe Forumsmitglieder,
ich bin hier neu und bin offen sowie dankbar für freundliche Hinweise auf Fehler meinerseits. :-)
Seit zwei Wochen durchforste ich alle mir bekannten Foren und sehe den Wald vor lauter Bäumen nicht mehr. :-(
Ist-Zustand:
Im Tabellenblatt "Eingabe" ist ein bestimmter Bereich (A2:N296) als Tabelle "tabelle" formatiert und definiert.
Es werden Daten aus SAP gezogen und dort eingefügt.
In Spalte "I" (also Column 9) steht in manchen Zeilen als Anfangswert eine Raute und die Buchstabenfolge ETIK. ("#ETIK") Im Anschluss an diesen Anfang stehen verschiedene Werte.
Die Zeilen, die also "#ETIK" enthalten, werden bisher manuell gelöscht.
Ich möchte diesen Vorgang automatisieren und habe unfassbar viele Varianten ausprobiert. Meistens kann ich die Vorschläge aus den Foren für mich anpassen, aber gerade hierzu will einfach nichts funtionieren.
Soll-Zustand (Wunschtraum):
per Makro die im Template vorhandenen Autofilter nutzen um die Spalte I nach "#ETIK*" zu filtern und anschließend die kompletten gefilterten (sichtbaren) Zeilen löschen.
Sollte es bereits eine Lösung geben, die ich nur noch nicht entdeckt habe, wäre ich für eine entsprechende Verlinkung sehr dankbar.
Hier ein Teil meines Codes:
With ActiveSheet.ListObjects("Tabelle").Range
.Autofilter 9, "=#ETIK*"
.SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlUp
.Autofilter 9
End With
Der Filter selbt funktioniert einwandfrei. Nur das Löschen gibt mir (bei diesem Versuch) folgenden Fehler aus:
"Laufzeitfehler '1004': Die Delete-Methode des Range-Objekts konnte nicht ausgeführt werden."
Ausprobiert habe ich Schleifen (natürlich von unten nach oben), auch mit einer If-Prüfung und auch ohne, mit CurrentCells, mit Range bezogen auf A2:N296 und auch mal bezogen auf I2:I296...
Kann mir jemand helfen?
Herzliche Grüße und vielen Dank vorab für eure Hilfe,
Anastasia
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 07:43:23
Hajo_Zi
Hallo Anastasia,
mache es ohne VBA.
Benutze Autofilter und Kopiere den sichtbaren Bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Excel hat auch einen Makrorecorder.
GrußformelHomepage
In diesem Forum bekomme nur selten eine Mailbenachrichtigung, weitere Antworten sind zufällig.
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 08:37:20
Anastasia
Guten Morgen mein lieber Hajo,
deine Beiträge schätze ich schon seit nunmehr drei Jahren sehr, weil ich dadurch schon viel gelernt habe. Vielen Dank dafür.
Eigentlich wollte ich schon "den Beweis", dass es nicht funktioniert, reinstellen. Ich arbeite ebenfalls mit dem Rekorder und kombiniere meistens inzwischen mit vielen tollen Tipps aus dem Netz.
Aber lustigerweise und auch dankenswerterweise (!) hast du mich aus meiner Mühle geholt! :-D
Diesmal bekam ich es nicht hin, bis eben!
Hier das seit deinem Beitrag erste neu aufgenommene Makro:
'
Range("Tabelle[[#Headers],[MaterialNr]]").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Autofilter
ActiveSheet.ListObjects("Tabelle").Range.Autofilter Field:=9, Criteria1:= _
"=#ETIK*", Operator:=xlAnd
Rows("5:23").Select
Selection.Delete Shift:=xlUp
ActiveSheet.ListObjects("Tabelle").Range.Autofilter Field:=9
End Sub
Nach dem ersten Versuch hat es natürlich nicht funktioniert.
Dann hatte ich die Idee die Rows auf den gesammten Bereich anzupassen, in meinen Gedanken war das 2:296. Hier kam ein Fehler bei Selection.Delete, aber dann fand ich meinen Fehler!
In Zeile 2 sind meine Headers! Die eigentlichen zu löschenden Zeilen beginnen erst in Zeile 3!
Somit:
Rows("3:296").Select
Wenn ich etwas Glück habe bekomme ich das auch mit meiner ursprünglichen Formel hin. Mal sehen. :-)
Vielen herzlichen Dank für deine wunderbare Anregung! :-)
Herliche Grüße,
Anastasia
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 08:39:46
Hajo_Zi
Hallo Anastasia,
ich bin dann raus, da meine Beitrag nicht komplett gelesen wurde.
Das wird schon seinen Grund haben.
Ich schreibe nicht für den Papierkorn. Ich bin dann raus.
Viel Erfolg noch.
Gruß Hajo
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 09:02:31
Anastasia
Lieber Hajo, liebe Forumsmitglieder,
das finde ich ausgesprochen schade. Allerdings nicht für mich.
Deinen Beitrag habe ich SELBSTVERSTÄNDLICH komplett gelesen! Er wurde mir sogar zwei mal nacheinander angezeigt. :-)
Hallo Anastasia, Hallo auch dir Hajo,
mache es ohne VBA. Nein, danke. Das ist keine Option, wenn ich es doch unbedingt automatisieren möchte.
Benutze Autofilter und Kopiere den sichtbaren Bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen. Siehe eine Zeile darüber.
Excel hat auch einen Makrorecorder. Ja, das war mir schon länger bewusst und ich habe diesen auch schon ausgiebig genutzt. Dennoch habe
ich das als Anregung genommen und bin glücklicherweise auf eine Lösung gekommen.
GrußformelHomepage Grüß zurück.
In diesem Forum bekomme nur selten eine Mailbenachrichtigung, weitere Antworten sind zufällig. Ich weiß nicht genau weshalb, aber ich habe das
Gefühl, dass du dennoch alles liest.
Ich habe deinen Beitrag gelesen und das für mich passendste herausgenommen.
Zum einen: Wen ich Lust auf "Schokolade" (VBA) habe, dann brauche ich keine Vorschläge wie "putz dir die Zähne, damit dir die Lust vergeht" (mache es manuell).
Obwohl du mir zu meinen eigenen Gedankengängen verholfen hast und ich nun eine Lösung habe, die ich auch noch für andere Anfänger hier gepostet habe, glaubst du, dass du für den Papierkorb geschrieben hast?
Das ist schade für dich. Damit hättest du das Gefühl oft sinnfreie Arbeit zu verrichten. Mir jedenfalls hat es geholfen.
(Falls du die Zeit dafür findest, zwischen den ganzen "Antworten für den Papierkorn" könntest du evtl. deine Standard-Nachricht noch korrigieren und daraus einen Papierkorb machen.)
Wie du siehst lese ich alles von deinen Antworten. Ich nehme nur nicht alles davon auf.
Ich jedenfalls danke dir und auch diesem Forum, das mich schon ca. drei Jahre begleitet, ganz herzlich für die Hilfe.
Auch das von heute war wiedermal scheinbar genau das, was ich gebraucht habe um vorwärts zu kommen. :-)
Herzliche Grüße,
Anastasia
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 09:04:00
Udo
Mal ein Ansatz ...
du würdest dich hier evtl. leichter tun durch eine entspr. Beispieldatei ...
Muss aber gestehen, ich agiere auch schon mal ohne u beschreibe dann ewig, letztl. is halt eine BDat.
dann doch sinnvoller ...
https://www.herber.de/bbs/user/149569.xlsm
Damit solltest du dann weiterkommen
LG Udo
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 09:23:14
Udo
... und so noch ohne Hilfsspalte...

Sub ETIK_Inhalte_löschen()
Dim Anfang As Integer
Dim Ende As Integer
Ende = Range("I10000").End(xlUp).Row
For Anfang = Ende To 2 Step -1
If Left(Range("I" & Anfang).Value, 5) = "#ETIK" Then Range("I" & Anfang).EntireRow.Delete
Next Anfang
End Sub
passend für die Beispieldatei , musst du dir halt noch anpassen ...
LG Udo
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 09:26:36
Udo
... und so noch ohne Hilfsspalte, mit direkter Suche nach Inhalt ... in I

Sub markierte_Zeilenabschnitte_löschen_2()
Dim Anfang As Integer
Dim Ende As Integer
Ende = Range("I10000").End(xlUp).Row
For Anfang = Ende To 2 Step -1
If Left(Range("I" & Anfang).Value, 5) = "#ETIK" Then Range("I" & Anfang).EntireRow.Delete
Next Anfang
End Sub
Musst du dir halt evtl. noch anpassen
LG Udo
Anzeige
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 09:38:42
Anastasia
Hallo Udo,
vielen herzlichen Dank auch dir für die Hilfe. :-)
Das schaue ich mir nach der Arbeit genauer an und schreibe dir eine Rückmeldung.
Herzliche Grüße,
Anastasia
AW: Autofilter-gefilterte Zeilen löschen
04.12.2021 10:42:14
Udo
... den noch ... damit löschst du dann nicht die ganze Zeile
sondern nur im Spaltenbereich A-N anteilig die jew. Zeile ...

Sub Etik_Inhalte_A_N_löschen()
Dim Anfang As Integer
Dim Ende As Integer
Ende = Range("I10000").End(xlUp).Row
For Anfang = Ende To 2 Step -1
If Left(Range("I" & Anfang).Value, 5) = "#ETIK" Then
Range(Cells(Anfang, 1).Address & ":" & Cells(Anfang, 14).Address).Delete Shift:=xlUp
End If
Next Anfang
End Sub
Das wars
LG Udo
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Autofilter: Gefilterte Zeilen Löschen in Excel


Schritt-für-Schritt-Anleitung

  1. Tabelle vorbereiten: Stelle sicher, dass deine Daten als Tabelle formatiert sind. Wähle dazu den Datenbereich aus und gehe zu Einfügen > Tabelle.

  2. Autofilter aktivieren: Wähle den Datenbereich aus und aktiviere den Autofilter über Daten > Filter.

  3. Filter setzen: Klicke auf den Dropdown-Pfeil in der Spalte, die du filtern möchtest (in diesem Fall Spalte I). Wähle die Option Textfilter > Beginnt mit und gib #ETIK ein.

  4. Gefilterte Zeilen löschen:

    • VBA-Makro verwenden: Öffne den VBA-Editor mit ALT + F11. Füge den folgenden Code ein:
      Sub gefilterte_Zeilen_löschen()
       With ActiveSheet.ListObjects("Tabelle").Range
           .AutoFilter 9, "=#ETIK*"
           .SpecialCells(xlCellTypeVisible).EntireRow.Delete Shift:=xlUp
           .AutoFilter 9
       End With
      End Sub
    • Manuell löschen: Alternativ kannst du die gefilterten Zeilen manuell auswählen (mit STRG + G und Sichtbare Zellen) und dann mit Rechtsklick > Löschen entfernen.

Häufige Fehler und Lösungen

  • Fehler 1004: "Die Delete-Methode des Range-Objekts konnte nicht ausgeführt werden."

    • Lösung: Stelle sicher, dass du nur die sichtbaren Zellen im gefilterten Bereich löschst. Vermeide das Löschen von nicht gefilterten Zeilen.
  • Zellen in einem gefilterten Bereich oder in einer gefilterten Tabelle können nicht verschoben werden:

    • Lösung: Dies tritt auf, wenn du versuchst, Zellen zu verschieben, die ausgeblendet sind. Stelle sicher, dass du nur die sichtbaren Zeilen bearbeitest.

Alternative Methoden

  • Excel nur sichtbare Zellen löschen: Nutze die Funktion Gehe zu (STRG + G), wähle Sichtbare Zellen aus und lösche dann diese Zellen.

  • Verwendung des Makrorecorders: Du kannst auch den Makrorecorder verwenden, um deine Schritte aufzuzeichnen, während du filterst und löschst. Dies ist besonders hilfreich, wenn du keine VBA-Kenntnisse hast.


Praktische Beispiele

  • Beispiel 1: Wenn du eine Tabelle mit mehreren Spalten hast und nur die Zeilen mit #ETIK in Spalte I löschen möchtest, kannst du den oben genannten VBA-Code verwenden.

  • Beispiel 2: Um alle gefilterten Zeilen zu löschen, die nicht mit #ETIK beginnen, ändere den Filter entsprechend und führe die Löschoperation durch.


Tipps für Profis

  • Automatisierung: Wenn du regelmäßig mit gefilterten Daten arbeitest, kannst du deine Makros in der Schnellzugriffsleiste speichern, um sie schnell auszuführen.

  • Sicherheitskopien: Erstelle immer eine Sicherheitskopie deiner Daten, bevor du Löschoperationen durchführst, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich gefilterte Zeilen auch mit einer Formel löschen? Ja, du kannst eine Hilfsspalte verwenden, um die Zeilen zu markieren und anschließend die gefilterten Zeilen zu löschen.

2. Was passiert mit den nicht gefilterten Zeilen? Die nicht gefilterten Zeilen bleiben unverändert, es sei denn, du beschließt, sie manuell zu löschen.

3. Geht das Löschen auch ohne VBA? Ja, du kannst den Autofilter nutzen und die sichtbaren Zeilen manuell auswählen und 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