Hallo,
ich muss aus einer Hilfstabelle eine große Menge an Datsätzen löschen,
und dass immer dann wenn in der Spalte D ein „OK“ steht.
Bei 12.000 Zeilen und ca. 5.000 "OK"´s liefert folgendes das
gewünschte Ergebnis ABER leider mit völlig unbrauch-barer Laufzeit.
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
If Cells(i, 4) = „OK“ Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
Nach Suchen habe ich folgendes gefunden…
Problem
1.) läufts noch nicht
2.) reichen meine VBA-Kenntnisse (wenn man das mal so nenne will) nicht um dieses Makro entrechend anzupassen
Public Sub ZeilenLöschen()
Dim rngData As Range
Dim rngCell As Range
Dim rngUnion As Range
Dim löschen As Boolean
With Active***
’ Suchbereich
Set rngData = Intersect(.Columns(„D“), .UsedRange)
End With
For Each rngCell In rngData
löschen = False
If rngCell = „weihnachtsmann“ Then löschen = True
If rngCell = „heuschrecke“ Then löschen = True
If rngCell = „abwrackprämie“ Then löschen = True
If löschen Then
If rngUnion Is Nothing Then
Set rngUnion = rngCell
Else
Set rngUnion = Application.Union(rngUnion, rngCell.EntireRow)
End If
End If
Next rngCell
'Zeilen mit gefundenen Wörtern löschen
If Not rngUnion Is Nothing Then rngUnion.EntireRow.Delete
End Sub
Kriegt das jemand schnell angepasst?
Wäre super!!!
Merci!