Nightfly09
sudo
- Registriert
- Apr. 2009
- Beiträge
- 14.529
Hallo zusammen,
ich habe vor einigen Jahren mit Excel 2016 eine Datei erstellt, die diverse Makros enthält die mit einer Ausnahme bis heute einigermaßen zufriedenstellend funktionieren. Nach dem Wechsel auf Office 365 ist mir aufgefallen, das einige Makros erhelich langsamer laufen als mit der alten Version, was bei den meisten Makros aufgrund der ohnehin kurzen Laufzeit auch nicht ganz so problematisch ist, wirkt sich bei einem Makro, dessen Laufzeit ich vorher schon als grenzwertig angesehen habe so aus, dass es jetzt einige Minuten läuft statt vorher einige Sekunden.
Da einige Minuten Laufzeit für ein regelmäßig ausgeführtes Makro aus meiner Sicht nicht mehr vertretbar ist, habe ich versucht das Makro zu optimieren um etwas mehr Tempo zu machen. Durch die Veränderungen ist das Makro auch schon merklich schneller geworden, jedoch von der früheren Geschwindigkeit noch immer weit entfernt.
Ich hoffe, dass sich hier jemand findet, der mir eventuell ein paar Tipps geben kann, wie sich das Makro weiter beschleunigen lässt, ohne die Anzahl der abgefragten Zeilen reduzieren zu müssen:
ich habe vor einigen Jahren mit Excel 2016 eine Datei erstellt, die diverse Makros enthält die mit einer Ausnahme bis heute einigermaßen zufriedenstellend funktionieren. Nach dem Wechsel auf Office 365 ist mir aufgefallen, das einige Makros erhelich langsamer laufen als mit der alten Version, was bei den meisten Makros aufgrund der ohnehin kurzen Laufzeit auch nicht ganz so problematisch ist, wirkt sich bei einem Makro, dessen Laufzeit ich vorher schon als grenzwertig angesehen habe so aus, dass es jetzt einige Minuten läuft statt vorher einige Sekunden.
Da einige Minuten Laufzeit für ein regelmäßig ausgeführtes Makro aus meiner Sicht nicht mehr vertretbar ist, habe ich versucht das Makro zu optimieren um etwas mehr Tempo zu machen. Durch die Veränderungen ist das Makro auch schon merklich schneller geworden, jedoch von der früheren Geschwindigkeit noch immer weit entfernt.
Ich hoffe, dass sich hier jemand findet, der mir eventuell ein paar Tipps geben kann, wie sich das Makro weiter beschleunigen lässt, ohne die Anzahl der abgefragten Zeilen reduzieren zu müssen:
Code:
Option Explicit
Sub OEE()
Worksheets("Berechnung").Visible = True
Worksheets("Berechnung").Activate
DoEvents
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Dim ZQ As Long
Dim ZZ As Long
With Sheets("OEE")
For ZQ = 1 To 78522
If Sheets("Aufzeichnung").Cells(ZQ, 11) > 0 Then
ZZ = ZZ + 1
.Cells(ZZ, 1) = Sheets("Aufzeichnung").Cells(ZQ, 1)
.Cells(ZZ, 2) = Sheets("Aufzeichnung").Cells(ZQ, 9)
.Cells(ZZ, 3) = Sheets("Aufzeichnung").Cells(ZQ, 10)
.Cells(ZZ, 4) = Sheets("Aufzeichnung").Cells(ZQ, 11)
.Cells(ZZ, 5) = Sheets("Aufzeichnung").Cells(ZQ, 12)
.Cells(ZZ, 6) = Sheets("Aufzeichnung").Cells(ZQ, 13)
.Cells(ZZ, 7) = Sheets("Aufzeichnung").Cells(ZQ, 14)
.Cells(ZZ, 8) = Sheets("Aufzeichnung").Cells(ZQ, 15)
.Cells(ZZ, 9) = Sheets("Aufzeichnung").Cells(ZQ, 16)
.Cells(ZZ, 10) = Sheets("Aufzeichnung").Cells(ZQ, 17)
.Cells(ZZ, 11) = Sheets("Aufzeichnung").Cells(ZQ, 18)
End If
Next ZQ
End With
With Application
.ScreenUpdating = True
.Calculation = xlAutomatic
.EnableEvents = True
End With
Call Calculate
Worksheets("XXX").Activate
Worksheets("Berechnung").Visible = xlVeryHidden
End Sub