Seite 1 von 1

Aktuelles Datum per Schaltfläche einfügen. [gelöst]

Verfasst: Do 23. Aug 2018, 09:57
von suwo
Hallo zusammen.
Ich versuche mich gerade an Schaltflächen. Per Kontrollfeld möchte ich das aktuelle Datum in Zelle A1 schreiben. Ich zeichne ein Makro auf: Wähle Zelle A1 und drücke die Taste F3, um das aktuelle Datum einzutragen. Wenn ich das Makro ausführe wird zwar die Zelle A1 ausgewählt, aber das Datum nicht eingetragen. Woran liegt das? Hier der Makro Code

Code: Alles auswählen

REM  *****  BASIC  *****


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertCurrentDate", "", 0, Array())


end sub
Danke für die Hilfe,
Suwo

Re: Aktuelles Datum per Schaltfläche einfügen.

Verfasst: Do 23. Aug 2018, 10:25
von HeritzP
Hallo,

ein link mit Makro für ein Datumsfeld.
http://www.oooforum.de/viewtopic.php?t=61417#p229803

Für dein Makro das letzte REM vor dispatcher.execute löschen.
Ist jetzt nur eine Vermutung.


Gruß HeritzP

Re: Aktuelles Datum per Schaltfläche einfügen.

Verfasst: Do 23. Aug 2018, 17:47
von mikele
Hallo,
um es etwas flexibler zu gestalten kannst du in den Eigenschaften der Schaltfläche bei "Zusatzinformation" die gewünschte Zelle eintragen (z. B. A1).
dann reicht folgender Einzeiler:

Code: Alles auswählen

Sub datum_eintragen (oevent)
	ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(oevent.source.model.tag).Value=date()
End Sub

Re: Aktuelles Datum per Schaltfläche einfügen.

Verfasst: Do 23. Aug 2018, 21:13
von Helmut_S
und wenn du die vorletzte Zeile mit "rem dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())"
auskommentierst, dann wird die Sache noch flexibler, denn dann schreibt dir das Makro da aktuelle Datum in die
aktuelle Zelle und nicht nur in A1 oder sonstwo.

Code: Alles auswählen


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "A1"

rem dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertCurrentDate", "", 0, Array())
end sub
Calc_Formular.ods
(10.67 KiB) 253-mal heruntergeladen
Gruß, Helmut

Re: Aktuelles Datum per Schaltfläche einfügen.

Verfasst: Sa 25. Aug 2018, 12:19
von suwo
Hallo.
Danke an Euch drei. Alle drei Lösungen funzen. Warum die letzte Zeile Zeile als Kommentar (rem) aufgezeichnet wird, ist mir allerdings ein Rätsel. @Helmut_S. Deine Lösung klappt natürlich auch. Ich brauche es aber so, dass ich die Zelle festlegen will, wo das Datum rein geschrieben wird.
Schönes WE,
Suwo