ich habe ein Makro, welches sehr lange läuft (teilweise über 1h).
Nun möchte ich dieses Makro optimieren und habe eine gute Idee, nur komme
ich mit der Umsetzung nicht weiter. Also ich habe eine Tabelle mit 20.000 Datensätzen.
Nun suche ich in der Spalte A nach dem Cell.Value = Holger.
Nur wenn das erfüllt ist, folgen weitere Aktionen.
Das Problem hierbei: Es können mehrere Zellen mit Cell.Value = Holger geben
und nur nach einer weiteren Prüfung soll eine Aktion erfolgen.
Erst dache ich, ich könnte Holger mit Cells.Find finden, aber dann würde er nur die erste finden.
Wie kann ich also in dieser Monstertabelle schnell alle Zellen mit Holger finden?
Immoment schleife ich durch alle 20.000 Datensätze und überprüfe ob Cell.Value = Holger ist.
Das dauert natürlich ewig.
So sieht es immoment aus:
Sub Dauertlange
Do While InstoreWS.Cells(intZ, 1).Value ""
strITEMID = InstoreWS.Cells(lngRow, 1).Value
strCountry = InstoreWS.Cells(lngRow, 5).Value
FindITEMID strITEMID, strCountry, rngInStoreBereich
InstoreWS.Activate
lngRow = lngRow + 1
intZ = intZ + 1
Loop
Sub FindITEMID(ITEMID As String, ctry As String, rngBereich As Range) ' ITEMID = Holger
Dim rngmyCell As Range
cpwInstoreWS.Activate
For Each rngmyCell In rngBereich
If rngmyCell.Offset(0, 4).Value "" Then
If rngmyCell.Offset(0, 4).Value "OK" Then
If rngmyCell.Value = ctry Then
If rngmyCell.Offset(0, 1).Value = ITEMID Then ' Wenn = Holger dann
rngmyCell.Offset(0, 5).Value = InstoreWS.Cells(lngRow, 2).Value
rngmyCell.Offset(0, 4).Value = "OK"
Exit Sub
End If
End If
End If
End If
Next rngmyCell
End Sub
End Sub