Variable in einer Formel

Bild

Betrifft: Variable in einer Formel
von: Wolfgang
Geschrieben am: 03.11.2015 18:06:41

Hallo gemeinsam,
ich habe hier ein Problem, bei dem ich nicht weiterkomme.
Per Makro möchte ich eine Formel in die letzte Zelle in Spalte 14 eintragen lassen. Der Makrorekorder hat mir folgendes geliefert:
Cells(Z + k, 14).FormulaR1C1 = "=SUM(R[-1066]C:R[-1]C)"
Die Zeile 1066 kann sich aber zu jeder Zeit ändern.
Während der Laufzeit ermittelt die Variable Zn = Z + k – 1 die letzte Zeile der Summenbildung.
Nun zur Frage: Wie bekomme ich das Ergebnis der Variablen in die Formel?
Danke im Voraus
Wolfgang
aus dem Erzgebirge

Bild

Betrifft: AW: Variable in einer Formel
von: Luschi
Geschrieben am: 03.11.2015 19:15:45
Hallo Wolfgang,
da 'FormulaR1C1' ein String (Textkette) als Formel erwartet, kann man sie auch zusammensetzen:
Cells(Z + k, 14).FormulaR1C1 = "=SUM(R[-" & Zn & "]C:R[-1]C)"
Gruß von Luschi
aus klein-Paris

Bild

Betrifft: AW: Variable in einer Formel
von: Uduuh
Geschrieben am: 03.11.2015 19:18:08
Hallo,
setze die erste Summenzeile fix.
Cells(Z + k, 14).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
summiert ab N$2.
Gruß aus’m Pott
Udo


Bild

Betrifft: AW: Variable in einer Formel
von: daniel
Geschrieben am: 03.11.2015 19:49:09
Hi
kleiner Tip am Rande:
wenn du per VBA Formeln einfügen willst und das mit dem Recorder aufzeichnen willst, dann setze soviele Zellbezüge wie möglich absolut und lasse nur diejenigen relativ, die unbedingt sein müssen.
dann werden in der aufgezeichneten R1C1-Schreibweise die Formeln einfacher und kürzer und in R1C1-kannst du viele Formeln dann direkt beschreiben, ohne Variablen nutzen zu müssen.
falls es trotzdem unvermeidlich ist, Variablen in die Formel einzubringen, dann gibt es hierfür zwei mögichkeiten:
a) Formel aus festen und variablen Bestandteilen mit & zu einem text verketten, das hat dir Luschi gezeigt
b) Variable per Replace in die Formel einbringen.
schreibe hierzu den Formeltext in eine Variable.
füge an der Stelle, an der die eigentliche Variable in den Text muss, eine Dummyzeichenfolge ein, die anderweitg nicht im Formeltext vorkommt (z.B. "xxx")
ersetze dann mit der Replace-Funktion in der Formelvariable den DummyText durch den Variablenwert.
sieht in etwa so aus:

strTBName = "Tabelle99"
strFormel = "=Sum('xxx'!R1C1:R100C1)"
strFormel = Replace(strFormel, "xxx", strTBName)
cells(...).FormulaR1c1 = strFormel
das hat meiner Ansicht nach gebenüber der Verkettenmethode den Vorteil, dass die Gesamtformel ein durchgängiger Text und nicht in Einzelteile zerrissen ist. Somit ist das ganze übersichtlicher und du fndest Fehler schneller.
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Variable in einer Formel "