ich sitze mal wieder vor einem Problem und hoffe ihr koennt mir helfen.
Ich moechte gerne eine Tabelle mit ca. 5000 Zeilen auswerten. Dazu lese ich die Daten die ich brauche in ein Array ein und pruefe ein paar Dinge. Nun stosse ich auf 2 Probleme.
1. Wenn ich untenstehenden Code laufen lasse, bekomm ich die richtigen Ergebnisse. Wenn ich aber die Abfrage die als Kommentar noch dazu nehme, dann sind alle Ergebnisse in diesem Block komplett falsch. Woran liegt das? Es hat doch nichts mit den anderen Abfragen zu tun.
2. Ich moechte die Zeilen in eine anderes Blatt kopieren, macht er auch. Bei einer Abfrage komme ich auf ca. 700 Zeilen und das macht das Makro schon ziemlich langsam. Gibt es eine schnellere Methode?
Wuerde mich ueber Rat echt freuen.
Beste Gruesse
abu
With Worksheets("Sheet1")
ReDim leseData(2 To leZeile, 1 To 10)
For z = 2 To leZeile
leseData(z, 1) = .Cells(z, 2) ' Delivery
leseData(z, 2) = .Cells(z, 8) ' Order receipt
leseData(z, 3) = .Cells(z, 10) ' DHL/Pre
leseData(z, 4) = .Cells(z, 17) ' Shipping Date
leseData(z, 5) = .Cells(z, 18) ' Departure date
leseData(z, 6) = .Cells(z, 32) ' Acknoledge
leseData(z, 7) = .Cells(z, 35) ' Number order lines
leseData(z, 8) = .Cells(z, 36) ' Units received
leseData(z, 9) = .Cells(z, 37) ' Pick lines
leseData(z, 10) = z
If leseData(z, 4) = KPIDatum Then deliveriesreceived = deliveriesreceived + 1
If leseData(z, 4) = KPIDatum Then orderlinesreceived = orderlinesreceived + leseData(z, 7)
If leseData(z, 4) = KPIDatum Then unitsreceived = unitsreceived + leseData(z, 8)
If leseData(z, 4) = KPIDatum Then
If leseData(z, 3) = "DHL" Then DHLpicklinesreceived = DHLpicklinesreceived + leseData(z, 9)
If leseData(z, 3) = "Pre Planned" Then PREpicklinesreceived = PREpicklinesreceived + leseData(z, 9)
End If
If leseData(z, 4) = KPIDatum Then
If leseData(z, 3) = "DHL" Then
If leseData(z, 6) = "" Then
DHLnotshipped = DHLnotshipped + 1
Rows(z).Copy Worksheets("DHLnotshipped").Rows(DHLnotshipped)
End If
If leseData(z, 6) > KPIDatum.Text Then
DHLnotshipped = DHLnotshipped + 1
Rows(z).Copy Worksheets("DHLnotshipped").Rows(DHLnotshipped)
End If
If leseData(z, 6) "" Then
If leseData(z, 6) DHLshipped = DHLshipped + 1
Rows(z).Copy Worksheets("DHLshipped").Rows(DHLshipped)
End If
End If
End If
If leseData(z, 3) = "Pre Planned" Then
If leseData(z, 6) = "" Then
PREnotshipped = PREnotshipped + 1
Rows(z).Copy Worksheets("PREnotshipped").Rows(PREnotshipped)
End If
If leseData(z, 6) > KPIDatum.Text Then
PREnotshipped = PREnotshipped + 1
Rows(z).Copy Worksheets("PREnotshipped").Rows(PREnotshipped)
End If
' If leseData(z, 6) "" Then
' If leseData(z, 6) ' PREshipped = PREshipped + 1
' Rows(z).Copy Worksheets("PREshipped").Rows(PREshipped)
' End If
' End If
End If
End If
Next z
End With