online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Tomschi vom 21.01.2022, 12:13 Options

Lösung

VBA: Formel einfügen

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


Antwort schreiben

Antwort 1 von Saarbauer vom 21.01.2022, 12:44 OptionsLösung

Lösung
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

Antwort 2 von Tomschi vom 21.01.2022, 12:52 Options

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

Antwort 3 von Beverly vom 21.01.2022, 13:13 Options

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.

Antwort 4 von Saarbauer vom 21.01.2022, 13:18 Options

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

Antwort 5 von Tomschi vom 21.01.2022, 13:40 Options

Hi Karin!
Hallo Helmut!

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

Bye

Tom

Ähnliche Themen

VBA Formel
MarcR  08.08.2008 - 47 Hits - 2 Antworten

vba kopieren und dann einfügen
vollmondgierig  31.10.2008 - 54 Hits - 2 Antworten

Per Makro Formel einfügen in Tabellenblätter?
Tutto_Retro  09.01.2009 - 136 Hits - 1 Antwort

Formel in VBA
wmei  19.03.2009 - 197 Hits - 2 Antworten

Spalten einfügen in Excel mittels VBA
Franks  17.09.2009 - 349 Hits - 6 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026