Hallo wonk,
dein Hauptproblem ist doch gelöst. Also wäre es doch besser gewesen einen neuen Thread aufzumachen, denn: anderes Problem = neuer Thread.
Aber nun gut, wenn Stephan schon geantwortet hat, dann kann ich das auch
Wenn ich das richtig sehe, ist aber nicht möglich, das Kopieren von Formelzellen mit Formelanpassung (z.B. 3 Zellen auf 30 Zellen) OHNE Schleifenkonstruktion zu erreichen!?
1.
Automatische Anpassung der Zellbezüge in Calc per richtigem Programmieren (nativ) ist mir wohl unbekannt, was aber nix zu bedeuten hat, bin ja schließlich nur ne kleine Leuchte. Aber es gäbe da schon einen Trick, den ich nachher noch kurz beschreibe.
Und nein, Stephan, der Trick kann dir leider nicht bei DEINEM Problem behilflich sein.
2.
Ich frage mich ob überhaupt Calc-Formeln kopiert werden müssen, oder ob es vielleicht nicht besser wäre anstatt mit den Calc-Formeln zu arbeiten das gleich per Makro zu erledigen?
So, und nun zu dem Trick. Ist nur ein extrem vereinfachtes Beispiel.
Anstatt mit ausgeschriebenen Calc-Formeln a-la
zu arbeiten, würde ich mit "Namen" arbeiten.
Die gezeigte WENN-Formel wird dem Namen *FormelNummer1* zugeordnet. Dann kann man beispielsweise hiermit
Code: Alles auswählen
SXE = oDocGL.Sheets(0).getCellRangeByName("A2")
oDocGL.Sheets(0).getCellRangeByName("D2").Formula = SXE.Formula
oder
Code: Alles auswählen
SXE = oDocGL.Sheets(0).getCellRangeByName("A2")
oDocGL.Sheets(0).getCellRangeByName("D2").FormulaLocal = SXE.FormulaLocal
ganz einfach die Zelle kopieren und die Zellbezüge werden intern hinter dem Namen automatisch angepasst.
Zu dem Thema "NamenFürFormeln" gibts hier reichlich lesestoff. Einfach mal danach suchen.
Gruß
balu