Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

Suchen-Löschen mit zwei Eingaben

Suchen-Löschen mit zwei Eingaben
06.05.2022 14:29:33
PantanalJunkie
Hallo zusammen
Ich steh auf dem Schlauch. Die Funktion Löschen mit einem Suchbegriff aus einer Zelle habe ich dank einem netten User in diesem Forum.
Wo aber der Fehler liegt, wenn ich diese Funktion auf zwei Suchbegriffe erweitern möchte weiss ich nicht.
Ziel:
Tabelle 52 B3 enthält das Datum
Tabelle 52 B2 enthält die Buchungsnummer
Wenn beide im "Beispiel" übereinstimmen soll Excel in der "Beispiel" Tabelle diese Zeile finden und löschen

Dim strg, Rng As Range, LoLetzte&
strg = Tabelle52.Range("B3").Value & Tabelle52.Range("B2").Value
With Worksheets("Beispiel")
LoLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
For Each Rng In .Range("A1:A" & "B1:B" & LoLetzte)
If Rng.Value = strg Then
'Hier Zeile löschen statt der Box mit
.Rows(Rng.Row).Delete
Exit Sub
End If
Next
End With
Danke für die HIlfestellung
Lg
PantanalJunkie
Kevin

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen-Löschen mit zwei Eingaben
06.05.2022 14:43:53
GerdL
Moin,
stehen denn die beiden Suchbegriffe in dieser Reihenfolge in einer Zelle?
Dann mußt du dich nur beim Range zwischen ":A" und "B ohne B1 entscheiden.
Gruß Gerd
AW: Suchen-Löschen mit zwei Eingaben
06.05.2022 14:49:27
Yal
Hallo Kevin,
es gab ein originalen, funktionierenden Code aber was Du reingebaut hast, kann nicht funktionieren.
Achte auf das Einrücken. Gute Lesbarkeit vermeidet dumme Fehler.
Der For Each hat das Ziel eine Zelle pro Zeile durchzugehen. Wenn A1:B2 nach eine bestimmte Wert-Kombi in A und B, nutzt es nicht, dass Du A1, A2, B1, B2 nacheinander prüfst. Du musst A1 und B1 zusammenprüfen und dann A2 und B2 zusammen. Also läufst Du von A1 bis A2 und bei jeden nimmst Du den passenden B dazu.
Der Vergleichstring kann zusammengesetzt werden, ist aber ungewöhnlich.

Dim Ref As String
Dim Rng As Range
Ref = Tabelle52.Range("B3").Value & Tabelle52.Range("B2").Value
With Worksheets("Beispiel")
For Each Rng In .Range(.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp))
If (Rng.Value & Rng.Offset(0, 1).Value) = Ref Then
Rng.EntireRow.Delete
Exit Sub
End If
Next
End With
Üblicherweise prüft man jede der beide Zellen separat:

Dim s1 As String
Dim s2 As String
Dim Rng As Range
s1 = Tabelle52.Range("B3").Value
s2 = Tabelle52.Range("B2").Value
With Worksheets("Beispiel")
For Each Rng In .Range(.Range("A1"), .Cells(.Rows.Count, 1).End(xlUp))
If Rng.Value = s1 And Rng.Offset(0, 1).Value = s2 Then
Rng.EntireRow.Delete
Exit Sub
End If
Next
End With
VG
Yal
Anzeige
AW: Suchen-Löschen mit zwei Eingaben
06.05.2022 17:20:11
Daniel
Hi
dein Fehler ist hier, das du beide Spalten markierst und dann über jede Zelle dieses Zellbereichs läufst und dabei jede einzelnen Zelle prüfst, egal ob da Datum oder Buchungsnummer drin steht. Das kann so nicht funktionieren.
du musst nur einmal über die Zellen einer Spalte laufen und kann überprüfen, ob die kombination aus der beiden Zellen mit dem Suchbegriff übereinstimmt:

For Each Rng In .Range("A1:A" & LoLetzte)
If Rng.Value & Rng.Offset(0, 1).value  = strg Then
'Hier Zeile löschen statt der Box mit
.Rows(Rng.Row).Delete
Exit Sub
End If
Next
aber es gibt was besseres zum Löschen von Zeilen, einfacher und viel schneller.
markiere die zu löschenden Zeilen per Formel in einer Hilfsspalte mit 0 und die anderen mit der Zeilennummer.
wende dann die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an um diese Zielen zu löschen.
sieht als code so aus.

with Sheets("Beispiel").UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(AND(RC1='" & Tabelle52.Name & "'!R3C2;RC2='" & Tabelle52.Name & '!R2C2),0,Row())"
.Cells(1, 1).FormulaR1C1 = 0
.EntireRow.RemoveDuplicates .column, xlno
.ClearContents
end with
end with
Zeile 1 wird allerdings als Überschrift behandelt und nicht gelöscht, egal was dort steht.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige