Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Alle Zeilen löschen außer mit dem Wert "xyz"

Alle Zeilen löschen außer mit dem Wert "xyz"
22.05.2015 15:50:12
Michael
Hallo,
mit folgendem Code lösche ich alle Zeilen wo der Wert "xyz" in der Spalte F vorkommt:
With Columns("F")
Do
Set objCell = .Find(What:="xyz", LookIn:=xlValues, _
LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
objCell.EntireRow.Delete shift:=xlUp
Else
Exit Do
End If
Loop
Wie müsste ich den Code denn anpassen wenn ich alle Zeilen löschen wollte die nicht "xyz" enthalten? Am besten in einer Range, da er wahrscheinlich auch die Header mit löscht :O
Gruß
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Zeilen löschen außer mit dem Wert "xyz"
22.05.2015 16:02:18
Beni
Hallo Michael
Zeilen von unten nach oben löschen
Beni
Sub ohne_xyz_löschen()
LZ = Cells(Rows.Count, 6).End(xlUp).Row ' letzte in Spalte F
For z = LZ To 2 Step -1
If Not Cells(z, 6) = "yxz" Then Rows(z).Delete Shift:=xlUp
Next z
End Sub

AW: Alle Zeilen löschen außer mit dem Wert "xyz"
22.05.2015 16:40:08
Michael
Dein Code funktioniert. Vielen Dank an dieser Stelle!
Gruß
Michael

AW: Alle Zeilen löschen außer mit dem Wert "xyz"
22.05.2015 16:07:29
Daniel
Hi
Zeilen per schleife zu löschen ist ziemlich langsam und aufwendig.
seit Excel 2007 gibts ein einfaches und sehr schnelles Verfahren, um Zeilen mit Bedinung zu löschen:
DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN
damit man das zum Löschen von Zeilen verwenden kann, muss man nur am Tabellenende eine Formel einfügen, die alle Zeilen, die stehen bleiben sollenn mit der aktuellen Zeilennummer kennzeichnet und alle die gelöscht werden sollen mit 0.
dann schreibt man noch in die Überschriftenzeile ebenfalls die 0 und kann dann die Funktion anwenden.
Dadurch dass man die zu löschenden Zeilen per Formel bestimmt, hat man einen sehr grossen Freiraum bei den Löschbedingungen
In deinem Fall würde der Ersatz für den gezeigten code so aussehen:
With ActiveSheet.UsedRange
With .columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(RC6=""xyz"",0,Row())"
.Cells(1, 1) = 0
.EntireRow.RemoveDuplicates .column, xlno
.ClearContents
End With
End With
den Code kanns du so standarmäßig verwenden, wenn ich die Löschbedingungen ändern musst du nur die Formel anpassen.
In deinem Fall dann: "=IF(RC6=""xyz"",Row(),0)", einfach WAHR- und FALSCH-Teil der Wenn-Funktion tauschen.
die erste Zeile (Überschrift) bleibt bei dieser Methode immer stehen.
Gruß Daniel

Anzeige
AW: Alle Zeilen löschen außer mit dem Wert "xyz"
22.05.2015 16:40:34
Michael
Vielen Dank für deine Anregung!
Gruß
Michael

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige