🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Fixes Datum per Makro

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
Mau
* LO-Experte *
Beiträge: 457
Registriert: Do 14. Feb 2013, 19:37

Fixes Datum per Makro

Beitrag von Mau » So 12. Jul 2015, 19:34

Liebe ExpertInnen,

ich laboriere (wieder einmal) daran, per Makro in einem - bzw. zwei - Format(en) das aktuelle Datum als fixen Wert einzufügen.

Dazu habe ich zunächst die zufällig entdeckte Seite http://www.ooowiki.de/FeldbefehlDatumIn ... ormat.html abgearbeitet. Nur wird auf diesem Weg das Datum doch immer aktualisiert, obwohl ich das Gegenteil angegeben habe.

Im Forum "LO Programmierung" auf der Seite
http://www.libreoffice-forum.de/viewtop ... mat#p27336
habe ich diesen Beitrag von karolus gefunden:
karolus hat geschrieben:Hallo

Code: Alles auswählen

sub datum
   sDatum = format (date()+14 ,"DD.MM.YYYY")
        msgbox sDatum
end sub
dim sDatum as date ist Blödsinn, weil format(...) eh einen string zurückgibt
Der Befehl msgbox sagt mir, dass ich jedes Mal eine Eingabe machen, also zwischen mehreren Möglichkeiten wählen soll. Ich möchte aber einen Makro erstellen, bei dem das nicht erforderlich ist, sondern der automatisch an der Cursor-Stelle das Format "TT.MM.JJJJ", und einen, der "T.MMMM.JJJJ" einfügt.
Würde für den ersten die Routine

Code: Alles auswählen

sub datum
   sDatum = format (date(),"DD.MM.YYYY")
end sub
ausreichen?
Ich vermute nicht, denn auf der Seite
http://www.libreoffice-forum.de/posting ... 12&p=14174
habe ich von F3K Total einen sehr viel längeren Code gefunden:
F3K Total hat geschrieben:

Code: Alles auswählen

Sub S_Insert_Date

dim bfound as boolean

bfound = false
opageenum = thiscomponent.drawpage.createEnumeration
while opageenum.hasmoreelements
  oshape = opageenum.nextelement
  if not ismissing(oshape.name) then
    if oshape.name = "Datum" then
      if oshape.supportsservice("com.sun.star.drawing.TextShape") then
        oshape.String = format (date(),"DD.MM.YYYY")
        bfound = true
      endif
    endif
  endif
wend

if not bfound then msgbox ("Ein Textfeld mit dem Namen 'Datum' wurde nicht gefunden.",48,"Fehler")

End Sub
Dies scheint das Datum jedoch in einem Textfeld auszugeben. Das möchte (bzw. benötige) ich auch nicht. Also müsste der Code eigentlich einfacher sein.

Gruß,
Mau

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Fixes Datum per Makro

Beitrag von mikele » So 12. Jul 2015, 20:51

Hallo,

Code: Alles auswählen

sub fixdatum
		
   sDatum = format (date() ,"DD.MM.YYYY")
   odoc=thiscomponent
   oview=odoc.getcurrentcontroller.getviewcursor
   odoc.gettext().insertstring(oview,sdatum,false)

end sub
Gruß,
mikele

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Fixes Datum per Makro

Beitrag von komma4 » So 12. Jul 2015, 21:16

Das Makro funktioniert nur, wenn der sichtbare Cursor sich im Textteil einer Writer-Datei befindet.

Also nicht, wenn sich der Cursor:
  • in einer Kopf- oder Fusszeile
  • in einem Rahmen
  • oder in einer Tabelle
befindet.

An den Stellen muss man etwas tricksen... siehe Sourcecode meiner Extension DateTime2
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

Mau
* LO-Experte *
Beiträge: 457
Registriert: Do 14. Feb 2013, 19:37

Re: Fixes Datum per Makro

Beitrag von Mau » So 12. Jul 2015, 22:20

Lieber mikele, lieber Winfried,

phantastisch, danke!!

Die von Winfried zusätzlich erfassten Sonderfälle kommen bei mir zu selten vor, als dass sich diese Ergänzung lohnen würde.

Für das Format "31. Dezember 1999" ersetze ich den String "DDMMJJJJ" dann sicherlich nur durch "T. MMMM JJJJ", richtig?

Gruß, und mille grazie,
Mau

Mau
* LO-Experte *
Beiträge: 457
Registriert: Do 14. Feb 2013, 19:37

Re: Fixes Datum per Makro

Beitrag von Mau » So 12. Jul 2015, 22:35

Ich hätte wohl richtiger so schreiben müssen:
Mau hat geschrieben: Für das Format "31. Dezember 1999" ersetze ich den String "DDMMYYYY" dann sicherlich nur durch "D. MMMM YYYY", richtig?
Gruß, und mille grazie,
Mau


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten