M
MSCom
Neuer Benutzer
Threadstarter
- Dabei seit
- 20.09.2016
- Beiträge
- 1
hallo,
ich muss in einer Excel-Datei sehr viele Berechnungen durchführen, was sehr viel Berechnungszeit braucht. Ich möchte deshalb die Formeln aus der Datei entfernen, in dem ein Makro die Formel berechnen und das Ergebnis als Wert in die jeweilige Zelle schreiben soll. Leider reichen meine VBA-Kenntnisse dazu nicht aus...
Das Blatt ist so aufgebaut, dass zuerst alle Werte in einer Zeile berechnet werden müssten (von links nach rechts gehend) und dann kommt dasselbe in der nächsten Zeile (besser gesagt 15 Zeilen darunter) dran. Und das bis zur letzten Berechnung in der Zeile 3523. (Ich denke, sowohl Zeilen- als auch Spaltennummern müssten durch Variablen definiert sein - auf die Art cells(i,j) - und die Zellen würden durch eine verschachtelte for/next Schleife für i und j angesteuert.)
Die Formel ist recht umfangreich (wobei manche Werte aus einem anderen Blatt ("xru") kommen, der Rest ist im Berechnungsblatt):
z.B. in Zelle L13 (da müsste begonnen werden) =SUMME((L3*L8/L6*xru!L$2-K3*K8/K6*xru!K$2)/MITTELWERT(xru!K$2,xru!L$2),(L3*L9/L6*xru!L$3-K3*K9/K6*xru!K$3)/MITTELWERT(xru!K$3,xru!L$3),(L3*L10/L6*xru!L$4-K3*K10/K6*xru!K$4)/MITTELWERT(xru!K$4,xru!L$4),(L3*L11/L6*xru!L$5-K3*K11/K6*xru!K$5)/MITTELWERT(xru!K$5,xru!L$5),(L3*(L6-L8-L9-L10-L11)/L6-K3*(K6-K8-K9-K10-K11)/K6))+(L4*L12-K4*K12)/MITTELWERT(K12,L12)+(L5-K5)
dann als nächstes (alles um eine Spalte versetzt):
in Zelle M13 =SUMME((M3*M8/M6*xru!M$2-L3*L8/L6*xru!L$2)/MITTELWERT(xru!L$2,xru!M$2),(M3*M9/M6*xru!M$3-L3*L9/L6*xru!L$3)/MITTELWERT(xru!L$3,xru!M$3),(M3*M10/M6*xru!M$4-L3*L10/L6*xru!L$4)/MITTELWERT(xru!L$4,xru!M$4),(M3*M11/M6*xru!M$5-L3*L11/L6*xru!L$5)/MITTELWERT(xru!L$5,xru!M$5),(M3*(M6-M8-M9-M10-M11)/M6-L3*(L6-L8-L9-L10-L11)/L6))+(M4*M12-L4*L12)/MITTELWERT(L12,M12)+(M5-L5)
und so weiter in Zeile 13 bis zur letzten Spalte (die letzte Spalte kann ich definieren).
Dann weiter in der nächsten Zeile 15 Zeilen drunter:
in Zelle L28 =SUMME((L18*L23/L21*xru!L$2-K18*K23/K21*xru!K$2)/MITTELWERT(xru!K$2,xru!L$2),(L18*L24/L21*xru!L$3-K18*K24/K21*xru!K$3)/MITTELWERT(xru!K$3,xru!L$3),(L18*L25/L21*xru!L$4-K18*K25/K21*xru!K$4)/MITTELWERT(xru!K$4,xru!L$4),(L18*L26/L21*xru!L$5-K18*K26/K21*xru!K$5)/MITTELWERT(xru!K$5,xru!L$5),(L18*(L21-L23-L24-L25-L26)/L21-K18*(K21-K23-K24-K25-K26)/K21))+(L19*L27-K19*K27)/MITTELWERT(K27,L27)+(L20-K20)
dann wieder Spalte M, und so weiter bis Zeile 3523.
Könnte mir jemand helfen?
(Die For/Next Schleife würde ich noch zusammen bringen, aber ich habe keine Ahnung, wie ich die Formel im Makro in der cells(i,j) Schreibweise darstelle...)
ich muss in einer Excel-Datei sehr viele Berechnungen durchführen, was sehr viel Berechnungszeit braucht. Ich möchte deshalb die Formeln aus der Datei entfernen, in dem ein Makro die Formel berechnen und das Ergebnis als Wert in die jeweilige Zelle schreiben soll. Leider reichen meine VBA-Kenntnisse dazu nicht aus...
Das Blatt ist so aufgebaut, dass zuerst alle Werte in einer Zeile berechnet werden müssten (von links nach rechts gehend) und dann kommt dasselbe in der nächsten Zeile (besser gesagt 15 Zeilen darunter) dran. Und das bis zur letzten Berechnung in der Zeile 3523. (Ich denke, sowohl Zeilen- als auch Spaltennummern müssten durch Variablen definiert sein - auf die Art cells(i,j) - und die Zellen würden durch eine verschachtelte for/next Schleife für i und j angesteuert.)
Die Formel ist recht umfangreich (wobei manche Werte aus einem anderen Blatt ("xru") kommen, der Rest ist im Berechnungsblatt):
z.B. in Zelle L13 (da müsste begonnen werden) =SUMME((L3*L8/L6*xru!L$2-K3*K8/K6*xru!K$2)/MITTELWERT(xru!K$2,xru!L$2),(L3*L9/L6*xru!L$3-K3*K9/K6*xru!K$3)/MITTELWERT(xru!K$3,xru!L$3),(L3*L10/L6*xru!L$4-K3*K10/K6*xru!K$4)/MITTELWERT(xru!K$4,xru!L$4),(L3*L11/L6*xru!L$5-K3*K11/K6*xru!K$5)/MITTELWERT(xru!K$5,xru!L$5),(L3*(L6-L8-L9-L10-L11)/L6-K3*(K6-K8-K9-K10-K11)/K6))+(L4*L12-K4*K12)/MITTELWERT(K12,L12)+(L5-K5)
dann als nächstes (alles um eine Spalte versetzt):
in Zelle M13 =SUMME((M3*M8/M6*xru!M$2-L3*L8/L6*xru!L$2)/MITTELWERT(xru!L$2,xru!M$2),(M3*M9/M6*xru!M$3-L3*L9/L6*xru!L$3)/MITTELWERT(xru!L$3,xru!M$3),(M3*M10/M6*xru!M$4-L3*L10/L6*xru!L$4)/MITTELWERT(xru!L$4,xru!M$4),(M3*M11/M6*xru!M$5-L3*L11/L6*xru!L$5)/MITTELWERT(xru!L$5,xru!M$5),(M3*(M6-M8-M9-M10-M11)/M6-L3*(L6-L8-L9-L10-L11)/L6))+(M4*M12-L4*L12)/MITTELWERT(L12,M12)+(M5-L5)
und so weiter in Zeile 13 bis zur letzten Spalte (die letzte Spalte kann ich definieren).
Dann weiter in der nächsten Zeile 15 Zeilen drunter:
in Zelle L28 =SUMME((L18*L23/L21*xru!L$2-K18*K23/K21*xru!K$2)/MITTELWERT(xru!K$2,xru!L$2),(L18*L24/L21*xru!L$3-K18*K24/K21*xru!K$3)/MITTELWERT(xru!K$3,xru!L$3),(L18*L25/L21*xru!L$4-K18*K25/K21*xru!K$4)/MITTELWERT(xru!K$4,xru!L$4),(L18*L26/L21*xru!L$5-K18*K26/K21*xru!K$5)/MITTELWERT(xru!K$5,xru!L$5),(L18*(L21-L23-L24-L25-L26)/L21-K18*(K21-K23-K24-K25-K26)/K21))+(L19*L27-K19*K27)/MITTELWERT(K27,L27)+(L20-K20)
dann wieder Spalte M, und so weiter bis Zeile 3523.
Könnte mir jemand helfen?
(Die For/Next Schleife würde ich noch zusammen bringen, aber ich habe keine Ahnung, wie ich die Formel im Makro in der cells(i,j) Schreibweise darstelle...)