Hi,
habe gerade ein makro erstellt, aber festgestellt, dass alles viel zu lange dauert. Hat jemand eine Idee, wie ich dies beschleunigen kann?
Jede Hilfe rettet mir das Leben
Danke
Application.ScreenUpdating = False
Range("H2").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-7],C[-7],'Department Analysis'!C[-1])"
Range("I2").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-8],C[-8],'Department Analysis'!C[-1])"
ActiveCell.FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-8],C[-8],'Department Analysis'!C[-1])/1.19"
Range("J2").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-9],C[-9],'Department Analysis'!C[-1])"
Range("H2:J2").Select
Application.Calculation = xlCalculationManual
Selection.AutoFill Destination:=Range("H2:J15000"), Type:=xlFillDefault
Application.Calculation = xlCalculationAutomatic
Call Calculate
Range("H2:J15000").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.ScreenUpdating = True
Excellent
Die Excel-Community von ExcelDaily
- Home
- Excellent
- Makros & VBA
- beschleunigen von berechnungen in autofill
Hi Karsten,
bei mir geht das ratz-fatz, d.h. unter 1 sec. Miss doch bitte mal die Laufzeit, indem Du zwei Variable deklarierst
Dim varStartTime As Variant
Dim varEndTime As Variant
und als erste Codezeile eingibst
varStartTime = Now()
und Deinen Code am Ende um folgende Zeilen ergänzt
varEndTime = Now()
MsgBox "Laufzeit: " & DateDiff("s", varStartTime, varEndTime) & " Sekunden", vbOKOnly
Damit gibst Du am Ende die Laufzeit in Sekunden aus. Wie lange läuft denn Deine Prozedur?
Prinzipiell könnte man sicher noch einige Selects einsparen, aber das dürfte in Deinem Fall nicht wesentlich zu Buche schlagen.
Gruß - Dirk
bei mir geht das ratz-fatz, d.h. unter 1 sec. Miss doch bitte mal die Laufzeit, indem Du zwei Variable deklarierst
Dim varStartTime As Variant
Dim varEndTime As Variant
und als erste Codezeile eingibst
varStartTime = Now()
und Deinen Code am Ende um folgende Zeilen ergänzt
varEndTime = Now()
MsgBox "Laufzeit: " & DateDiff("s", varStartTime, varEndTime) & " Sekunden", vbOKOnly
Damit gibst Du am Ende die Laufzeit in Sekunden aus. Wie lange läuft denn Deine Prozedur?
Prinzipiell könnte man sicher noch einige Selects einsparen, aber das dürfte in Deinem Fall nicht wesentlich zu Buche schlagen.
Gruß - Dirk
Auf die Schnelle ein wenig ent-Select-iert:
Sub trallalla()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("H2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-7],C[-7],'Department Analysis'!C[-1])"
Range("I2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-8],C[-8],'Department Analysis'!C[-1])/1.19"
Range("J2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-9],C[-9],'Department Analysis'!C[-1])"
Range("H2:J2").AutoFill Destination:=Range("H2:J15000"), Type:=xlFillDefault
ActiveSheet.Calculate
Range("H2:J15000").Copy
Range("H2:J15000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Hope that helps
Mit freundlichsten Grüßen
Peter
Sub trallalla()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("H2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-7],C[-7],'Department Analysis'!C[-1])"
Range("I2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-8],C[-8],'Department Analysis'!C[-1])/1.19"
Range("J2").FormulaR1C1 = _
"=SUMIF('Department Analysis'!C[-9],C[-9],'Department Analysis'!C[-1])"
Range("H2:J2").AutoFill Destination:=Range("H2:J15000"), Type:=xlFillDefault
ActiveSheet.Calculate
Range("H2:J15000").Copy
Range("H2:J15000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Hope that helps
Mit freundlichsten Grüßen
Peter
Hier anmelden
Du bist noch kein Mitglied der Community?
Stichwörter
Community-Details
-
Suche nach:
Community-Name
Excellent
Die Excel-Community von ExcelDailyDein Gastgeber ist
Online seit
17.03.2008
Mitglieder
Sprache
Deutsch


