Ich habe ein SPEED Problem.
In befülle eine Tabelle mit durchschnittlich 3000 Zeilen (A4:W3004).
Dann sortiere ich die Datensätze gemäss Datum und ergänze in Spalte Q, ob die Daten undgültig oder abgelaufen sind.
Dazu berücksichtige ich mehrere Zellen in meiner Matrix (String & Datum).
Das Ziel besteht darin, auf Basis eines Stichdatum (M2) anzuzeigen welche Zeilen gültig, ungültig oder abgelaufen waren.
Mein Makro funktioniert wie es soll, nur wird es extrem langsam bei vielen Datensätzen, da ich jede einzelne Zeile in IF-Schlaufen mehrfach durchlaufen muss.
Könnte mir jemand einen Tipp geben wie ich diesen Vorgang beschleunigen könnte?
Gibt es eine Möglichkeit diese IF Schlaufen schneller in einer Array durchzulaufen?
Folgend mein Code:
Dim r As Integer
Dim k As Integer
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual 'Formelkalkulation ausschalten
'Filter löschen
ThisWorkbook.Worksheets("IST Employee Skills").Range("A3").AutoFilter
ThisWorkbook.Worksheets("IST Employee Skills").Range("A3").AutoFilter
ThisWorkbook.Worksheets("IST Employee Skills").ListObjects("EmployeeSkills"). _
Sort.SortFields.Clear
ThisWorkbook.Activate
ThisWorkbook.Worksheets("IST Employee Skills").ListObjects("EmployeeSkills"). _
Sort.SortFields.Add Key:=Range("EmployeeSkills[[#All],[Erstellt am]]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ThisWorkbook.Worksheets("IST Employee Skills").ListObjects( _
"EmployeeSkills").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ThisWorkbook.Worksheets("IST Employee Skills").Range("Q4:Q99999").ClearContents
'Aktive und inaktive Kompetenzen definieren
r = (ThisWorkbook.Worksheets("IST Employee Skills").Range("I1048576").End(xlUp).Row)
For k = r To 4 Step -1
If ThisWorkbook.Worksheets("IST Employee Skills").Cells(k, 8)
Danke für eure HilfeMarcel