Seite 1 von 1

Probleme mit Calc-Formeln

Verfasst: Mi, 04.02.2009 12:24
von Hömmelmann
Hallo,

mein Problem besteht erst in neuerer Zeit. In den Versionen 2.... von OO gab es die Schwierigkeiten nicht.

Ich weise einigen Zellen in einem Sheet einer Calc-Datei per Makro eine Formel zu. Diese Liste enthält dann die Feiertage eines Jahres.
Der Code dazu lautet z.B.

...
sheet.getcellbyposition(0,3).formula="=IF(ISLEAPYEAR(A1);A1+121;A1+120)"
...
In A1 steht dabei das gültige Datum für den 1. Januar des aktuellen Jahres.

Die Formel müßte (und hat in der Version 2) unter Berücksichtigung des Schaltjahres den 1. Mai zeigen.
Jetzt steht in der Zelle "#Name?". Das IF wird korrekt in WENN übersetzt, aber aus ISLEAPYEAR wird nicht ISTSCHALTJAHR .
Die deutsche Funktion wird aber auch nicht akzeptiert.

Kann mir da jemand einen Tipp geben, wie diese Kuh vom Eis kommt?


Danke schon mal..

Friedhelm

Re: Probleme mit Calc-Formeln

Verfasst: Mi, 04.02.2009 12:58
von Charly
Hallo Hömmelmann!

Da ich meistens die Englischen Bezeichnungen nicht kenne, verwende ich immer die Deutsche Funktionen. Für die Eingabe in der Zelle schreibt man dann statt Zelle.Formula: Zelle.FormulaLocal.
Also probiers einmal mit folgender Formel:

Code: Alles auswählen

sheet.getcellbyposition(0,3).formulaLocal ="=Wenn(IstSchaltjahr(A1);A1+121;A1+120)"
Gruß
Charly

Re: Probleme mit Calc-Formeln

Verfasst: Mi, 04.02.2009 13:19
von Hömmelmann
Ja, das funktioniert einwandfrei.

Danke vielmals.


Friedhelm

Re: Probleme mit Calc-Formeln

Verfasst: Mi, 04.02.2009 13:45
von Karolus
Hallo
Der 1.Mai geht doch einfacher mit:

Code: Alles auswählen

sheet.getcellbyposition(0,3).formulaLocal ="=DATUM(JAHR(A1);5;1)"

Code: Alles auswählen

sheet.getcellbyposition(0,3).formula ="=DATE(YEAR(A1);5;1)"
oder besser gleich per Runtime-funktion:

Code: Alles auswählen

sheet.getcellbyposition(0,3).formulalocal = DateSerial(year(sheet.getcellbyposition(0,0).value),5,1)
Gruß Karo