Formeln mit Schleife in Zellen schreiben - VBA

Hallo liebe Experten,

ich habe folgendes Problem.

Ich habe ein Sheet mit ca 5000 Zeilen. Ich möchte nun mit einer Schleife in jede Zelle einer Spalte eine Formel schreiben. Das stellt auch kein Problem dar. Nun soll aber in dieser Schleife immer Bezug auf den Wert genommen werden, der in der jeweiligen Zeile steht. Ich muss eine Formel in die Zellen schreiben, da eine Variable der Berechnung manuell angepasst werden muss. Hier mein Code:

For init = 2 To CountCells

Cells(init, „BK“).Select
Cells(init, „BK“).Formula = „=Cells(init, „„X““) * Cells(init, „„AA““) * Cells(init, „„AB““) + Cells(init, „„Y““)“

Next init

Das Problem verstehe ich auch. Excel übernimmt das Wahrscheinlich als String. Wie kann ich aber verschiedene Zellen in der Berechnung ansprechen, sodass ich folgendes Ergebnis habe:
E1=(A1*B1*C1+D1) in der nächsten Zeile dann
E2=(A2*B2*C2+D2)

Viele Grüße und vielen Dank für die Hilfe.

Hallo uocid,

Das Problem verstehe ich auch. Excel übernimmt das
Wahrscheinlich als String.

ich verstehe da nix von dem was du vorher geschrieben hast.

Wie kann ich aber verschiedene
Zellen in der Berechnung ansprechen, sodass ich folgendes
Ergebnis habe:
E1=(A1*B1*C1+D1) in der nächsten Zeile dann
E2=(A2*B2*C2+D2)

Das verstehe ich.

Sub tt()
Dim Zei As Long
Zei = Cells(Rows.Count, "A").End(xlUp).Row 'ggfs. A anpassen
Range("E1:E" & Zei).Formula = "=A1\*B1\*C1+D1"
End Sub

Gruß
Reinhard

Vielen Dank schonmal für die Hilfe ! Vielleicht habe ich mich etwas zu kompliziert ausgedrückt.

Mit deinem Code schreibt er nun in jede Zeile die gleiche Formel. Aber genau das ist ja das Problem. Die Formel soll ich in jeder Zeile ändern.

Also:

E1= A1+B1+C1 etc…
E2= A2+B2+C2
E3= A3+B3+C3

Hast du da noch eine Idee?

VG

Moin,

klinkemich da mal ein, um den fleißigen Reinhard zu entlasten :wink:

Mit deinem Code schreibt er nun in jede Zeile die gleiche
Formel. Aber genau das ist ja das Problem. Die Formel soll ich
in jeder Zeile ändern.

Also:

E1= A1+B1+C1 etc…
E2= A2+B2+C2
E3= A3+B3+C3

Schreibe einfach einen Bezug da rein, wie Reinhard es für die Range gemacht hat:

Range("E1:E" & Zei).Formula = "=A" & Zei & "\*B" & Zei & "\*C" & Zei & "+D" & Zei

Das sollte klappen.

Gruss
Laika, der hier lange nix von sich hat hören lassen und der von Reinhard schon viiiiiel Hilfe bekommen hat!

Oh sorry, …
… das geht doch nicht. War zu schnell.
„Zei“ ist ja das Ende der Tabelle. Du brauchst aber eine Laufvariable.
Melde mich wieder.

Laika

Hallo uocid,

ich hab mal Reinhrds Vorschlag ein bisschen abgewandelt. So müsste es klappen:

Sub formeln()
 Dim Zei As Long
 For Zei = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
 Range("E" & Zei).Formula = "=A" & Zei & "\*B" & Zei & "\*C" & Zei & "+D" & Zei
 Next Zei
End Sub

Gruß, Andreas

Mit deinem Code schreibt er nun in jede Zeile die gleiche
Formel. Aber genau das ist ja das Problem. Die Formel soll ich
in jeder Zeile ändern.

Also:

E1= A1+B1+C1 etc…
E2= A2+B2+C2
E3= A3+B3+C3

Hallo oucid,

Hast du da noch eine Idee?

ein zwei schon :smile: Aber so gefragt Nein.

Mein Code losgelassen auf paar Zahlen in A ergibt doch genau das
was du wünschst!?
Beweisfoto (wie gesagt nur A1:A5 ausgefüllt, dann Code):
http://www.flickr.com/photos/97244664@N07/9090818675/

Wo liegt das Problem, wenn es eines ist, bei dir bei mir,
bei beiden? Egal, plauder mal los, kriegen wir schon hin
*sehr glaub*, wir = du, nette Helfer hier.

Gruß
Reinhard

Hallo Zusammen,

das klappt super !!! Vielen vielen Dank.

Wenn ich irgendwie helfen kann, einfach bescheid geben :smile:

VG
uocid