mit folgendem Code lösche ich Zeilen mit einer Bedingung:
Sub archiv_bereinigen()
Sheets("Übersichtstabelle").Select
If ActiveSheet.AutoFilterMode Then Cells.AutoFilter
Application.EnableEvents = True
Application.ScreenUpdating = False
e1 = 29000
For i1 = 3 To e1
Sheets("Übersichtstabelle").Select
If i1 Mod 10 = 0 Or i1 = e1 Then
Application.StatusBar = "Archiv bereinigen, Datensatz " & Format(i1, "0000000") & " von " & Format(e1, "0000000") & " Endzeit = " & Anfangszeit1 + (Now() - Anfangszeit1) / i1 * e1
DoEvents
End If
gn_co = Cells(i1, 16)
gn_such = gn_co
If gn_such "" Then
Do
Set c = Sheets("Archiv").Columns("P:P").Find(gn_such, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
'Datensatz gefunden
y = c.row
'Datensatz löschen
Sheets("Archiv").Select
zelle_spalte = Format(y, "0000000") + ":" + Format(y, "0000000")
Rows(zelle_spalte).Select
Selection.Delete Shift:=xlUp
End If
Loop Until c Is Nothing
End If
Next i1
Application.StatusBar = True
Application.ScreenUpdating = True
End Sub
Anmerkung:Sheet Übersichtstabelle hat 29.000 Reihen
Sheet Archiv hat 1.100 Reihen
Aus Übersichtstabelle loope ich durch alle Einträge und lese mir eine Zelle raus (gn_co)
Alle Reihen in Archiv mit dieser Bedingung sollen gelöscht werden
Das ganze dauert jedoch zu lange (> 1h); gibt es einen schnelleren Weg?
Danke für Hilfe!
Heinz