2.6k Aufrufe
in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Mahlzeit!

Ich möchte gerne per VBA in der ersten freien Spalte Formeln einfügen.

Zunächst ermittle ich die erste freie Spalte wie folgt:

Dim LCol As Integer
Set Rng = ActiveCell.CurrentRegion
Debug.Print Rng.Address
LCol = Rng.Columns(Rng.Columns.Count).Column

Nunmehr sollen in dieser Spalte die vorherigen Werte saldiert werden.

ActiveSheet.Cells(2, LCol) = "=Cells(2 - 1, LCol-1) + Cells(2, LCol-1)"

Dim Wiederholungen As Integer
For Wiederholungen = 3 To 10

ActiveSheet.Cells(Wiederholungen, LCol) = "=Cells(Wiederholungen - 1, LCol-1) + Cells(Wiederholungen, LCol-1)"

Next

Leider funktioniert dieser Code nicht.
Wo ist mein Denkfehler?

vereinfachtes Beispiel:
a1: 20
a2: 30
a3: 50
In B2 soll die Formel =A1+a2 (--> B2: 50) bzw.
in b3 die Formel =A3+b2 (--> B3: 100)
usw. stehen.

Vielen Dank für die Unterstützung!

Tom

5 Antworten

0 Punkte
von saarbauer Profi (15.6k Punkte)
Hallo,

Versuch es mal so

ActiveSheet.Cells(2, LCol) ="=R[-1]C[-1]+RC[-1]"

For Wiederholungen = 3 To 10
ActiveSheet.Cells(Wiederholungen, LCol) = "=R[-1]C+RC[-1]"
Next


Gruß

Helmut
0 Punkte
von tomschi Mitglied (879 Punkte)
Hallo Helmut!

Klappt. DANKE!

Das mit "=R[-1]C[-1]+RC[-1]" habe ich um ehrlich zu sein bis dato noch nicht durchschaut.
Daher wollte ich den Umweg via "Cells" gehen.
Was genau bedeutet z. B. R[-1]C[-1] und gibt es dafuer eine Logik um den "normalen" Zellbezug zu ermitteln?

Ciao

Tom
0 Punkte
von beverly Experte (3.5k Punkte)
Hi Tom,

es geht auch mit Cells:

ActiveSheet.Cells(Wiederholungen, LCol) = "=" & Cells(Wiederholungen - 1, LCol).Address(False, False) & "+" & Cells(Wiederholungen, LCol - 1).Address(False, False)


Bis später,
Karin

PS: die schließende Klammer hinter False wird von der Forensoftware abgeschnitten.
0 Punkte
von saarbauer Profi (15.6k Punkte)
Hallo,

R für Row -> Zeile
C für Columns -> Spalte

R[-1]C[-1] -> 1Zeile hoch, 1 Spalte zurück

Hoffe die Erläuterung reicht

Gruß

Helmut
0 Punkte
von tomschi Mitglied (879 Punkte)
Hi Karin!
Hallo Helmut!

Bitte nicht streiten wegen der Bonuspunkte.
Ihr habt mir sehr weitergeholen!

Bye

Tom

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...