ich habe ein Problem mit einer großen Excel Tabelle. Um den Prozess zu automatisieren wollte ich ein Makro schreiben, was eigentlich ziemlich simpel ist.
Die aktuelle Tabelle soll aktualisiert werden (automatische Berechnung ist deaktiviert) und anschließend sollen weitere Makros gestartet werden. Das Problem ist das es fast 700.000 Zellen sind die neu berechnet werden müssen und viele mit Datenbankformeln versehen sind. Manuell berechnet mit "Alt+F9" dauert es ca. 1:40 Min. Wenn ich es mit ".Calculate" probiere hängt es sich auf oder dauert eine Ewigkeit.
Hier mal mein aktueller Code:
Sub AlleBlätter()
Dim blatt As Worksheet
Dim WS_Count As Integer
Dim i As Integer
'WS_Count = ActiveWorkbook.Worksheets.Count 'Es sollen später noch weitere Blätter hinzukommen
'For I = 2 To 2
i = 2
With Sheets(i)
.Calculate
'Call DBRWSearchAndDestroy2 'Wenn "Calcuate" funktioniert sollen weitere Makros ausgeführt _
werden
'Call Sortieren1
'Call Sortieren2
'Call ZeilenAlle
'Call ZeilenMitWerten
End With
'Next I
MsgBox "Alle Blätter aktualisiert"
End Sub
Ich habe es auch schon mit :
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'mein Code
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
oder mit
Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Static intCalculation As Integer
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus, xlManual, intCalculation)
.Cursor = IIf(Modus, 2, -4143)
End With
End Sub
probiert. Hat aber alles nicht wirklich geholfen.
Habt ihr vielleicht noch eine Idee was ich versuchen kann?
Vielen Dank und viele Grüße
Jinu