Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeile löschen wenn 2 bestimmte Spalten leer sind

Zeile löschen wenn 2 bestimmte Spalten leer sind
07.09.2015 13:41:56
Klaus
Hallo!
Ich habe aktuell eine Liste mit über 200.000 Zeilen.
Im Großteil der Zeilen ist in den Spalten A und B (manchmal auch in beiden) ein Inhalt.
Ich möchte nun alle Zeilen löschen, in denen in Spalte A und B nichts steht.
Würde ich das nur mit Spalte A machen, würde mein Code so aussehen:

'Alle Zeilen löschen, bei denen Spalte A leer ist
a = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:A" & a).Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Nachdem ich aber nur Zeilen löschen möchte, in denen A UND B leer sind, stoße ich an meine Grenzen.
Ich habe probeweise das Range("A1:A" & a) durch Range ("A1:B" & a) ersetzt, was aber leider nicht funktioniert.
Könnt ihr mir bitte helfen?

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen wenn 2 bestimmte Spalten leer
07.09.2015 13:52:04
Daniel
Hi
zunächst einmal solltst du deine Excelversion richtig angeben.
Excel 2003 hat maximal 65536 Zeilen, in sofern muss eine deiner Angaben falsch sein.
da mit neuen Excelversionen oft auch neue Funktionen bereit gestellt werden, wäre es schon wichtig zu wissen, was Sache ist.
probier mal:
Intersect(Columns(1).SpecialCells(xlcelltypeblanks).EntireRow, Columns(2).SpecialCells(xlcelltypeblanks).EntireRow).EntireRow.Delete
Hilfreich wäre, die Tabelle vorher nach Spalte A und Spalte B sortiert, so das die zu löschenden Zeilen eine lückenlos zusammenhängenden Zellblock bilden, das vereinfacht Excel die Arbeit beim Löschen.
sollte die Angabe mit den 200.000 Zeilen richtig sein und du ne Excelversion mit 2007 und höher hast, würde auch folgendes gehen:
1. füge in die erste freie Spalte am Tabellenende von Zeile 2 bis zur letzen gefüllten Zeile folgende Formel ein:
=Wenn(Und(A2="";B2="");0;Zeile())
2. Schreibe in die erste Zeile dieser Hilfsspalte die 0
3. wende auf die ganze Tabelle die Funktion DATEN - DATENTOOLS - DUPLIAKTE ENTFERNEN an, mit der Hilfsspalte als Kriterum und der Option "keine Überschrift"
4. lösche die Hilfsspalte wieder
das ist auch sehr schnell, verarbeitet grösste Datenmengen und braucht auch keine Sortierung.
da es ein einfacher Ablauf von Excelanweisungen ist (Formel einfügen, Menüfunktion ausführen) kann man das gut mit dem Recorder aufzeichnen, wenn man es als Code braucht.
Gruß Daniel

Anzeige
AW: Zeile löschen wenn 2 bestimmte Spalten leer
07.09.2015 15:31:53
Klaus
Hallo Daniel!
Erstmal vielen Dank für deine Hilfe.
Tut mir leid wegen der falschen Angabe. Wenn ich schon um Hilfe bitte sollten wenigstens die Angaben stimmen. Meine Officeversion ist 2010, bis vor kurzem hatte ich noch 2003.
Von der Formel =Wenn(Und(A2="";B2="");0;Zeile()) hatte ich bisher noch nie gehört - die hilft wesentlich besser als alles, was ich mir erhofft hatte.
Zusammengefasst sieht mein funktionierender Code am Ende so aus:
Dim AnzZeilen As Long
AnzZeilen = Worksheets("gestrichen").UsedRange.Rows.Count 'Zeilen zählen und die Zahl in  _
Variable schreiben
Range("D2", Cells(AnzZeilen, 4)).FormulaR1C1 = "=IF(AND(RC[-3]="""",RC[-2]=""""),0,ROW())" ' _
Formel in alle beschrifteten Zeilen eintragen
Range("A1", Cells(AnzZeilen, 4)).Select
ActiveSheet.Range("A2", Cells(AnzZeilen, 4)).RemoveDuplicates Columns:=4, Header:= _
xlNo
Columns("D:D").Delete

Anzeige
AW: Zeile löschen wenn 2 bestimmte Spalten leer
07.09.2015 15:59:31
Daniel
Hi
ja das RemoveDuplicates ist schon ne klasse Funktion.
allerdings musst du noch eines beachten:
das RemoveDuplikates entfernt hier nicht alle Zellen mit 0 als Wert, sondern die erste Zelle mit 0 bleibt stehen!
um jetzt alle Zeilen aus einem Bereich zu löschen, geht man so vor, dass man die 0 in die Überschriftenzeile der Hilfsspalte schreibt, dann die Tabelle vollständig als Wertebereich angibt (incl. der Überschriftenzeile) und dann aber die Option "keine Überschrift" anwählt.
Denn die erste Zeile mit 0 bleibt immer stehen, und auf diese Weise ist das dann die Überschrift und nicht eine Zeile aus den Daten.
Gruß Daniel

Anzeige
AW: Zeile löschen wenn 2 bestimmte Spalten leer sind
07.09.2015 15:11:28
UweD
Hallo
ginge über Filtern...
Sub Leer()
Dim RR As Double
Dim Rng
With ActiveSheet
Set Rng = .Range("A:B")
RR = Rng.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile aus A:B
Rng.AutoFilter
Rng.AutoFilter Field:=1, Criteria1:="="
Rng.AutoFilter Field:=2, Criteria1:="="
.Rows("2:" & RR).Delete Shift:=xlUp
.AutoFilterMode = False
End With
End Sub

Gruß UweD

Anzeige
AW: Zeile löschen wenn 2 bestimmte Spalten leer sind
07.09.2015 18:07:13
Gerd
Hallo Klaus!
Range("A:A").SpecialCells(4).Offset(, 1).SpecialCells(4).EntireRow.Delete

Gruß Gerd

AW: clever :-)
07.09.2015 18:09:34
Daniel
clever.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen löschen, wenn zwei bestimmte Spalten leer sind


Schritt-für-Schritt-Anleitung

Um alle Zeilen in Excel zu löschen, bei denen in zwei bestimmten Spalten (zum Beispiel A und B) kein Inhalt vorhanden ist, kannst Du die folgenden Schritte ausführen. Diese Anleitung basiert auf Excel 2010 und höher.

  1. Hilfsspalte einfügen: Füge in die erste freie Spalte ab Zeile 2 die folgende Formel ein:

    =WENN(UND(A2="";B2="");0;ZEILE())
  2. Formel ausfüllen: Ziehe die Formel bis zur letzten gefüllten Zeile nach unten.

  3. 0 in die Überschrift: Schreibe in die erste Zeile dieser Hilfsspalte eine 0.

  4. Duplikate entfernen: Gehe zu Daten > Datentools > Duplikate entfernen und wähle die Hilfsspalte als Kriterium aus. Stelle sicher, dass die Option "Keine Überschrift" aktiviert ist.

  5. Hilfsspalte löschen: Lösche die Hilfsspalte, nachdem die Duplikate entfernt wurden.

Alternativ kannst Du auch VBA-Code verwenden, um die Zeilen zu löschen:

Dim AnzZeilen As Long
AnzZeilen = Worksheets("gestrichen").UsedRange.Rows.Count
Range("D2", Cells(AnzZeilen, 4)).FormulaR1C1 = "=IF(AND(RC[-3]="""",RC[-2]=""""),0,ROW())"
Range("A1", Cells(AnzZeilen, 4)).Select
ActiveSheet.Range("A2", Cells(AnzZeilen, 4)).RemoveDuplicates Columns:=4, Header:=xlNo
Columns("D:D").Delete

Häufige Fehler und Lösungen

  • Fehler: Die 0 bleibt stehen: Wenn Du die RemoveDuplicates-Funktion verwendest, bleibt die erste Zelle mit 0 stehen. Um dies zu vermeiden, schreibe die 0 in die Überschrift der Hilfsspalte.

  • Fehler: Excel versieht die Hilfsspalte nicht richtig: Stelle sicher, dass Du die Formel korrekt in die Hilfsspalte einfügst und sie bis zur letzten Zeile ausfüllst.

  • Fehler: Falsche Excel-Version: Achte darauf, dass Du eine Excel-Version verwendest, die mehr als 65.536 Zeilen unterstützt (Excel 2007 oder höher).


Alternative Methoden

Eine weitere Methode, um Zeilen zu löschen, ist die Verwendung eines Filters:

  1. Markiere die Spalten A und B.
  2. Wähle Daten > Filter.
  3. Setze die Filterkriterien für beide Spalten auf "Leer".
  4. Lösche die gefilterten Zeilen und deaktiviere den Filter danach.

Diese Methode kann besonders nützlich sein, wenn Du schnell eine visuelle Übersicht der leeren Zeilen benötigst.


Praktische Beispiele

Beispiel 1: Angenommen, Du hast eine Tabelle mit den folgenden Daten:

A B C
1 2 X
Y
3 Z
4 W

Nach Anwendung der oben beschriebenen Schritte würden die zweite und die vierte Zeile gelöscht, da in beiden Spalten A und B kein Inhalt vorhanden ist.

Beispiel 2: Mit dem VBA-Code kannst Du auch große Datenmengen schnell verarbeiten, indem Du die Hilfsspalte automatisch füllst und die Duplikate entfernst.


Tipps für Profis

  • Verwende VBA: Wenn Du häufig mit großen Datenmengen arbeitest, empfehle ich, die Aufgaben zu automatisieren. Das spart Zeit und minimiert Fehler.

  • Sichere Deine Daten: Bevor Du große Löschoperationen durchführst, erstelle immer ein Backup der Daten.

  • Verwende den Excel-Recorder: Um VBA-Code für wiederkehrende Aufgaben zu erstellen, nutze den Excel-Recorder. So kannst Du die Schritte aufzeichnen und später wiederverwenden.


FAQ: Häufige Fragen

1. Wie lösche ich Zeilen, wenn nur eine der beiden Spalten leer ist? Du kannst die Formel anpassen, um nur eine der beiden Spalten zu überprüfen. Zum Beispiel:

=WENN(ODER(A2="";B2="");0;ZEILE())

2. Funktioniert das auch in älteren Excel-Versionen? Die beschriebenen Methoden funktionieren am besten in Excel 2010 und höher. In älteren Versionen kann es Einschränkungen geben, besonders bei der Zeilenanzahl.

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