Mit einem Code bearbeite ich einen Hauptbuchoutput, damit ich eine Datenbasis habe, auf dessen Basis ich diverse Abfragen machen kann. Da der Output relativ umfangreich ist (gegen 70'000) Zeilen, braucht der Code 8-9 Minuten zum Ablaufen. Das ist eigentlich ganz ok.
Nun habe ich in die Datei verschiedene Auswertungen eingebaut, womit die Datei etwas grösser (vorallem Formeln) geworden ist.
Nun hat sich die Laufzeit etwa verdreifacht. Das hat mich erstaunt, denn am Angang des Codes schalte ich Berechnungen und Aktualisierungen aus (Aufruf von GetMoreSpeed):
Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
'kann nach Abbruch manuell in Direktbereich ausgeschaltet werden mit
'getmorespeed false
Static intCalculation As Integer
intCalculation = -4105
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub
Insbesondere dieser Codeteil beansprucht extrem viel Zeit:
Application.StatusBar = "Spalten in Tabelle ""HB_bearbeitet"": Überflüssige Zeilen löschen (1)"'Abfragen, ob sowohl Kolonne Datum und Saldo leer, dann löschen
With Sheets("HB_bearbeitet")
Intersect(.Range(strhDatKonto).SpecialCells(xlCellTypeBlanks).EntireRow, .Range(strhSaldo).SpecialCells(xlCellTypeBlanks)).EntireRow.Delete
End With
Kann ich noch etwas mehr "ausschalten" oder muss damit leben, dass die Datei langsamer wird, wenn mehr Tabellen vorhanden sind, selbst wenn während dem Laufen des Codes die Berechnungen und Aktualisierungen nicht laufen?Gruss, Peter