Makro läuft ewig
14.09.2023 14:06:47
Hans
ich brauche bitte Eure Hilfe. Ich habe ein Makro gebastelt. In einer Arbeitsmappe steht in einem Blatt in einer Spalte ca. 5000 Artikelnummern. Diese sollen in einem zweiten Tabellenblatt mit ca. 50000 Datensätzen gesucht und bei Übereinstimmung die komplette Zeile gelöscht werden. Der Artikel kann in der zweiten Tabelle nur einmal vorkommen.
Mein Makro:
Public Sub Makro1()
Dim WS1 As Worksheet: Set WS1 = Worksheets("Tabelle1")
Dim WS2 As Worksheet: Set WS2 = Worksheets("Tabelle2")
Dim lngRow As Long
Dim Z As Integer
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Z = 0
For lngRow = 2 To WS2.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIfs(WS1.Columns(1), WS2.Cells(lngRow, 3)) = 1 Then
WS2.Cells(lngRow, 1).EntireRow.Delete
Z = Z + 1
End If
Next lngRow
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
MsgBox Z & " Zeilen gelöscht"
End Sub
Das Makro läuft zwar, aber es dauert ewig. Was ist hier falsch bzw. was kann ich optimieren? Ich freue mich über Tipps. Vielen Dank im Voraus.
Hans