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

Bestimmte Zeilen am Blattende löschen (VBA)

Forumthread: Bestimmte Zeilen am Blattende löschen (VBA)

Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 09:09:41
Erwin
Guten Morgen,

ich erhalte immer wieder Auswertungen aus SAP, die unterschiedlich lang (Zeilen) und unterschiedlich breit (Spalten) sind.
Ich muss diese aufbereiten und am Tabellenende Zeilen löschen, dabei soll nur in den letzten 10 Zeilen nach dem Begriff "zuletzt geändert von*" gesucht werden.
Wenn dieser Begriff gefunden wurde, dann diese und die nächsten beiden Zeilen löschen.
Allerdings ist es so, dass die letzte Zeile nicht (immer) in Spalte A ist, sondern auch in anderen Spalten vorkommen kann.

Ich habe schon einen code, aber dieser durchsucht das ganze Blatt und das dauert bei 300.000 Zeilen ewig.im
Suchbegriff As String
Dim Bereich As Range
Suchbegriff = "zuletzt geändert von*"
Do
Set Bereich = ActiveSheet.Cells.Find(Suchbegriff, LookAt:=xlWhole)
If Bereich Is Nothing Then
Exit Do
Else
'keine Zeilen oberhalb, aber Zeile mit Suchbegriff und 2 Zeilen unterhalb markieren
Range(Bereich.Offset(0, 0), Bereich.Offset(2, 0)).EntireRow.Select
Selection.EntireRow.Delete
End If
Loop

Deshalb sollen nur die letzten 10 Zeilen aus Performancegründen durchsucht werden.

Danke schon in den frühen Morgenstunden.

Erwin
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 10:41:25
UweD
Hallo


So?
Sub Weg_Damit()

Dim LR As Long, i As Long
Dim Suchbegriff As String

Suchbegriff = "zuletzt geändert von*"

With ActiveSheet
LR = .Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten Blattes

For i = LR To LR - 10 Step -1
If WorksheetFunction.CountIf(.Rows(i), Suchbegriff) Then
.Rows(i).Resize(3).Delete
End If

Next
End With
End Sub



LG UweD
Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 10:42:10
Daniel
Hi

Dim z as long

Dim e as long

e = cells.Specialcells(xlcelltypelastcell).row

For z = e to e - 9 step - 1
If worksheetfunction.countifs(rows(z) , "zuletzt geändert von*") > 0 then rows(z).resize(3).delete
Next


Gruß Daniel

Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 11:53:51
GerdL
Moin
Sub Unit()


Dim vntSearch As Variant, rngCell As Range, lrow As Long, a As Integer, b As Long

vntSearch = Array("zuletzt geändert von", "Summe", "Anzahl")
lrow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

For a = LBound(vntSearch) To UBound(vntSearch)
Do
Set rngCell = ActiveSheet.Range(ActiveSheet.Rows(lrow - 9), ActiveSheet.Rows(lrow)). _
Find(vntSearch(a), LookIn:=xlValues, lookat:=xlPart, MatchCase:=False, _
searchdirection:=xlPrevious)
If Not rngCell Is Nothing Then
b = 3
If a > 0 Then b = 1
rngCell.Resize(b).EntireRow.Delete
End If
Loop Until rngCell Is Nothing
Next

End Sub

Gruß Gerd
Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 11:05:21
Erwin
Hallo ihr Beiden,

herzlichen Dank für die Codes, beide funktionieren gut.

Jetzt habe ich leider festgestellt, dass ich noch eine weitere Zeile in den letzten 10 Zeilen löschen muss und zwar wenn die Wörter "Summe:" oder "Anzahl" vorkommen.
Dann soll aber nur die Zeile mit den Wörtern gelöscht werden und nicht, wie vorhin, 3 Zeilen.

Meine Versuche, dies mit einer Aufzählung und Komma zu machen, funktionieren leider nicht.

Wäre schön, wenn ich hierfür auch noch Hilfe bekommen würde.

Danke - Erwin
Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 11:15:12
Daniel
If worksheetfunction.countifs(rows(z) , "zuletzt geändert von*") > 0 then

rows(z).resize(3).delete
Elseif worksheetfunction.countifs(rows(z) , "*Summe*") > 0 then
rows(z).delete
Elseif worksheetfunction.countifs(rows(z) , "*Anzahl*") > 0 then
rows(z).delete
Else
End if
Anzeige
AW: Bestimmte Zeilen am Blattende löschen (VBA)
10.07.2025 11:36:41
Erwin
Hi Daniel,
ich habe auf "gefällt mir" gedrückt, weil es wieder super passt.
Allerdings finde ich das hier nicht und wollte es hier nochmals zum Ausdruck bringen.
Grüße - Erwin

Natürlich auch UweD ein Dankeschön.

Forumthreads zu verwandten Themen

Anzeige