Seite 1 von 1

per Macro einer Zelle eine Formel zuweisen

Verfasst: Mo, 30.11.2009 13:54
von parlo
So - jetzt nochmal im richtigen Forumseck ...

Über die Suche bin ich nicht fündig geworden - darum stelle ich die Frage mal direkt:

Ich möchte per Macro einer Zelle eine Formel zuweisen. Eigentlich recht simpel von der Idee her. Ich möchte in einer Spalte einer Tabelle die Aktualität der Zeile festhalten - habe ich dort was geändert, gehe ich auf das Feld und drücke einen Button, der das aktuelle Datum einträgt ... was mir nicht ganz reicht .. ich möchte wissen, wie alt der Eintrag in Tagen ist, also soll in der Zelle ein Funktion wie '=heute()-29.11.09' stehen. Und eben das 29.11.09 fest eingetragen sein, von eben dem Macro, damit auch übermorgen noch das Bearbeitungsdatum da steht.
Ich habe es bisher aber nichtmal hinbekommen, dass das Macro "=today()" einträgt. Die Funktion wird gleich eingefügt bzw. 0 eingetragen.
Ich mache ganz klar was falsch - weiß jemand Rat?

Re: per Macro einer Zelle eine Formel zuweisen

Verfasst: Mo, 30.11.2009 14:47
von Karolus
Hallo
Versuchs mit:
ocell.formulalocal = " =HEUTE()-DATWERT(""29.11.2009"")"
oder evtl. besser gleich:
ocell.formulalocal = " =JETZT()-DATWERT(""29.11.2009"")"

Gruß Karo

Re: per Macro einer Zelle eine Formel zuweisen

Verfasst: Sa, 05.12.2009 14:07
von parlo
Erstmal danke für die schnelle Antwort - ich kam erst jetzt zum nachschauen.
Wenn ich, wie du es vorschlägst oder z.B. ocell.formulalocal = " =HEUTE()-DATAWERT(" + Date +")" verwende, funktioniert es .. fast:#NAME? erscheint in der Zelle. Das Verrechnen von Datum mit Datum scheint nicht ganz zu funktionieren ...

Re: per Macro einer Zelle eine Formel zuweisen

Verfasst: Sa, 05.12.2009 14:43
von Karolus
Hallo
Nein, es liegt daran das DATWERT einen Datumsstring in "Anführungszeichen" erwartet, deshalb musst du die zusätzlichen " im Makrocode maskieren.
ocell.formulalocal = "=HEUTE()-DATWERT(""" + Date + """)"
beachte die drei doppelten Anführungszeichen vor und hinter Date ( eins zum maskieren des zweiten und das dritte zum quoten des vorherigen bzw. nachfolgendem Formeltextes.
(im Falle von " =HEUTE()-DATWERT(""29.11.2009"")" sind es je zwei " vor und hinter dem Datumstext )

Gruß Karo

Re: per Macro einer Zelle eine Formel zuweisen

Verfasst: Sa, 05.12.2009 16:00
von Stephan
Wenn ich, wie du es vorschlägst oder z.B. ocell.formulalocal = " =HEUTE()-DATAWERT(" + Date +")" verwende, funktioniert es .. fast:#NAME? erscheint in der Zelle.
das könnte daher rühren das Du die Codezeile:

Code: Alles auswählen

ocell.formulalocal = " =JETZT()-DATWERT(""29.11.2009"")"
auf einem nicht deutsch lokalisierten OOo ausführst, Um solche Probleme zu vermeiden ist es meist besser die lokalsierungsunabhängige Schreibweise:

Code: Alles auswählen

ocell.formulalocal = "=NOW()-DATEVALUE(""29.11.2009"")"
zu verwenden. OOo passt dann die Funktionsnamen automatisch auf die vorhandene Sprache an.



Gruß
Stephan