Eine Familie von Microsoft-Tabellenkalkulationsprogrammen mit Tools zum Analysieren, Darstellen und Vermitteln von Daten.
Hallo Zoltan,
ich hoffe, ich habe dich richtig verstanden und die gewünschten Blätter sind im Blatt "Output Sheets" aufgelistet.
Select, Selection und Activate werden nur in ganz seltenen Fällen benötigt. Wenn man korrekt referenziert, kann darauf verzichtet werden.
Calculation ist ein Keyword in VBA und diese sollten nicht als Makroname oder Variablen benutzt werden.
Probiere es mal so:
Sub Berechnung()
Dim Spalten As Integer, i As Integer, LRow As Integer, n As Integer
Dim rngBig As Range, myRow As Range
Dim varSh As Variant
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
On Error GoTo CleanUp
With Sheets("Output Sheets")
LRow = .Cells(.Rows.Count, "A").End(xlUp).Row
varSh = .Range("A1:A" & LRow)
End With
For n = LBound(varSh) To UBound(varSh)
With Sheets(varSh(n, 1))
'Hier die Spalten f?r die Formeln anpassen
Set rngBig = Nothing
Spalten = .Columns("CI").Column - .Columns("L").Column + 1
For i = 13 To 3523 Step 15
If rngBig Is Nothing Then
Set rngBig = .Cells(i, "L").Resize(1, Spalten)
Else
Set rngBig = Union(rngBig, .Cells(i, "L").Resize(1, Spalten))
End If
Next
With rngBig
.Formula = "=IFERROR(SUM((L3*L8/L6*xru!L$2-K3*K8/K6*xru!K$2)/Average(xru!K$2,xru!L$2)," _
& "(L3*L9/L6*xru!L$3-K3*K9/K6*xru!K$3)/Average(xru!K$3,xru!L$3)," _
& "(L3*L10/L6*xru!L$4-K3*K10/K6*xru!K$4)/Average(xru!K$4,xru!L$4)," _
& "(L3*L11/L6*xru!L$5-K3*K11/K6*xru!K$5)/Average(xru!K$5,xru!L$5)," _
& "(L3*(L6-L8-L9-L10-L11)/L6-K3*(K6-K8-K9-K10-K11))/K6+(L4*L12-K4*K12)/Average(K12,L12)" _
& "+(L5-K5)),0)"
.Calculate
For Each myRow In rngBig
With myRow
.Value = .Value
End With
Next
End With
End With
Next
CleanUp:
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Claus