Schleife beschleunigen
16.06.2016 19:27:03
Noureddine
ich hab einen kleinen Code für meine Datenbank geschrieben.
Mittlerweile hab ich mehr als 55.000 Zeilen angelegt.
Der Code an sich liefert das korrekte Ergebnis und tut auch immer was es soll, jedoch prüf er jede einzele Zeile. Die Schleife benötig somit ca. 5 min.
Gib es eine Möglichkeit, dies zu beschleunigen?
Da das Ergebnis "Zähler" meistens öffters unter 20 liegt, müsste er ja eigentlich nur die bis zu 20 Zeilen ansprechen. Geht das?
Danke nochmals vorab für eure Hilfe!
Sub test()
Dim letzteZeile As Long
Dim DZähler As Long
Dim Zähler As Long
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Rows.Row
For a = 2 To letzteZeile
If Cells(a, 1).Value = "201603" And Cells(a, 8).Value = "A" And Cells(a, 14).Value 0 And _
Cells(a, 16).Value = 0 Then
Zähler = Zähler + 1
End If
If Cells(a, 1).Value = "201603" And Cells(a, 8).Value = "A" And Cells(a, 14).Value 0 And _
Cells(a, 16).Value = 0 And _
Application.WorksheetFunction.CountIf(Range(Cells(a, 5), Cells(letzteZeile, 5)), Cells(a, 5) _
.Value) > 1 Then
DZähler = DZähler + 1
End If
Next a
If Application.WorksheetFunction.CountIfs(Range(Cells(2, 1), Cells(letzteZeile, 1)), "201603", _
Range(Cells(2, 8), Cells(letzteZeile, 8)) _
, "A", Range(Cells(2, 14), Cells(letzteZeile, 14)), "0", Range(Cells(2, 16), Cells( _
letzteZeile, 16)), 0) = Zähler Then
MsgBox "es gib " & Zähler & " kunden mit einer eins"
Else
MsgBox "es gib " & Zähler - DZähler & " kunden mit einer eins"
End If
End Sub