2.3k Aufrufe
Gefragt 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
Beantwortet 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
Beantwortet 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
Beantwortet 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
Beantwortet 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
Beantwortet von tomschi Mitglied (879 Punkte)
Hi Karin!
Hallo Helmut!

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

Bye

Tom
...