Hallo,
tja eigentlich wollte ich das ganze mit dem weglassen von Variablen Namen übersichtlicher gestallten aber wie gewünscht der komplette Auszug der betreffenden FOR-Anweisung:
For temp2 = 1 To Cells(Rows.Count, SpalteSQ.Value).End(xlUp).Row
If Not objDic.exists(Cells(temp2, SpalteSQ.Value).Value) Then
objDic.Add Cells(temp2, SpalteSQ.Value).Value, Cells(temp2, SpalteSQ.Value)
Else
summe = summe + 1
If CheckBox3.Value = True And temp2 > 11 Then ActiveWindow.ScrollRow = temp2 - 10
If CheckBox4.Value = True Then Cells(temp2, SpalteSQ.Value).Interior.ColorIndex = 6
If CheckBox4.Value = True Then objDic(Cells(temp2, SpalteSQ.Value).Value).Interior.ColorIndex = 6
If CheckBox5.Value = True Then Cells(temp2, Asc(SpalteSQ.Value) - 96 + 1).Value = 1
End If
Next
@ ExcelKing: Versehentlich die Klammer weggenommen.
Inzwischen habe in den IF-Zweig der CheckBox3 ein UserForm.Hide mit untergebracht (nicht im Code oben) was das Problem aushebelt - nicht schön aber geht.
Mit dem DoEents werde ich mich nun etwas beschäftigen, bin mir noch nicht sicher wie genau es arbeitet.
Noch einmal zusammengefasst: In einer UserForm werden ein paar Parameter angegeben und mit einem Button ein Suchlauf gestartet. Aus der Erfahrung heraus sind die Datensätze ca 500k-600k Zeilen groß, es dauert also auch eine Weile, zur Übersicht gibt es die Option die Funde, meist 0-5, während des Suchlaufs anzuspringen.
Wird das Skript als Makro "direkt" ausgeführt, bedeutet ohne UserForm und mit Festen Parametern, arbeitet es wie gewünscht. In der "UserForm" Variante jedoch scheint jedoch den Focus zu behalten und das Blatt im Hintergrund wird nicht mehr Aktualisiert - sprich: Er springt quasi vom Start zum Ende.
Gruß
deathfun