Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1860to1864
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

Ausnahme beim Löschen von Zeilen

Ausnahme beim Löschen von Zeilen
16.12.2021 09:58:09
Zeilen
Hallo Zusammen,
ich habe hier einen Code, der zwei Tabellenblätter abgleicht (Tabelle1, Tabelle2). Wenn in Tabelle1 keine Übereinstimmung mit dem Inhalt zu Tabelle2 gemacht wird, soll die gesamte Zeile von Tabelle1 gelöscht werden.
Zusätzlich soll eine Ausnahme eingefügt werden:
Wenn in Tabelle1 in der Spalte 3 (C) ein "AB" oder "AC" drin steht - soll der Code an dieser Stelle nicht angewendet werden.
Tabelle1 wurde bereits deklariert und definiert.
Dim p As Long
Dim Tabelle2 As Worksheet
Set Tabelle2 = ActiveWorkbook.Sheets("BeispielTabelle2")
With Tabelle1
For p = .Cells(.Rows.Count, 3).End(xlUp).row To 1 Step -1
If WorksheetFunction.CountIf(Tabelle2.Columns(2), .Cells(p, 3)) = 0 Then
.Rows(p).Delete
End If
Next p
End With

Über jegliche Unterstützung freue ich mich sehr.
Viele Grüße
Basti

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausnahme beim Löschen von Zeilen
16.12.2021 10:11:45
Zeilen
Hi,
ungetestet:
With Tabelle1
For p = .Cells(.Rows.Count, 3).End(xlUp).row To 1 Step -1
If WorksheetFunction.CountIf(Tabelle2.Columns(2), .Cells(p, 3)) = 0 And .Cells(p, 3) "AB" And .Cells(p, 3) "AC" Then
.Rows(p).Delete
End If
Next p
End With
VG, Boris
AW: Ausnahme beim Löschen von Zeilen
16.12.2021 10:22:35
Zeilen
Hallo Basti,
ich erlaube mir, trotz korrekte Antwort von Boris, meine Version mit Select Case vorszuschlagen.
Bei einer Prüfung im gleichen "If" führt dazu, dass der Zahlenwenn (CountIf) ausgewertet wird, auch wenn man weisst, dass man es nicht braucht (Junge, das sind Mikro-Sekunden gesparrt! )
(ja, und auch die Gelegenheit die Anwendung von <pre>&lt/pre> zu zeigen ;-P Nur so wird das Einrücken richtig dargestellt)

Sub NichtVorhandenen_löschen()
Dim p As Long
Dim Tabelle2 As Worksheet
Set Tabelle2 = ActiveWorkbook.Sheets("BeispielTabelle2")
With Tabelle1
For p = .Cells(.Rows.Count, 3).End(xlUp).Row To 1 Step -1
Select Case UCase(Trim(.Cells(p, 3)))
Case "AB", "AC" 'nichts machen, nur überspringen
Case Else
If WorksheetFunction.CountIf(Tabelle2.Columns(2), .Cells(p, 3)) = 0 Then .Rows(p).Delete
End Select
Next p
End With
End Sub
VG
Yal
Anzeige
"Mikrosekunden" ;-)) ...oT
16.12.2021 10:37:50
{Boris}
VG, Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige