per Macro einer Zelle eine Formel zuweisen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

parlo
Beiträge: 6
Registriert: Mi, 04.11.2009 14:59

per Macro einer Zelle eine Formel zuweisen

Beitrag 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?
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: per Macro einer Zelle eine Formel zuweisen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
parlo
Beiträge: 6
Registriert: Mi, 04.11.2009 14:59

Re: per Macro einer Zelle eine Formel zuweisen

Beitrag 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 ...
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: per Macro einer Zelle eine Formel zuweisen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: per Macro einer Zelle eine Formel zuweisen

Beitrag 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
Antworten