Ich habe eine Matrix, welche je Artikel die Verbräuche über die letzten 26 KW enthält. Diese Werte stehen in jeder Reihe von Spalte B bis AA.
In Spalte AC ist der Mittelwert für diese Reihe aufgelistet.
Das Makro durchläuft jetzt alle Zellen in der Reihe und schaut, ob der Wert kleiner ist als der Mittelwert. Sollte dies der Fall sein hebt er den Wert auf den Mittelwert an. Wenn nicht geht er weiter. Am Ende der Matrix angekommen springt er in die nächste Reihe.
Mein Problem ist, dass das Makro ca 4000 Zeilen durchlaufen muss, wass 10-15 Minuten dauert. Kein riesen Problem, aber ich frage mich, ob es nicht auch schneller geht.
Das Makro durchläuft die Matrix von B2 bis zur vorletzten Spalte der letzten Reihe.
Mein Makro sieht bisher so aus:
Dim iPROW As Integer
Dim IPCOL As Integer
Dim irow As Integer
Dim icol As Integer
irow = 2
icol = 2
PTCOL = Range("SF1").End(xlToLeft).Column
PTROW = Range("A65000").End(xlUp).Row
Application.ScreenUpdating = False
While irow < PTROW + 2
While icol < PTCOL - 2
If Cells(irow, icol).Value < Cells(irow, PTCOL - 1).Value Then
Cells(irow, icol) = Cells(irow, PTCOL - 1).Value
End If
icol = icol + 1
Wend
icol = 2
irow = irow + 1
Wend
Application.ScreenUpdating = True
Bin für jede Hilfe Dankbar.
Gruß Nico