🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Aktuelles Datum einfügen per Makro

Komponentenübergreifende Themen und Hilfe zu LibreOffice
Antworten
Freischreiber
* LO-Experte *
Beiträge: 866
Registriert: Fr 28. Mär 2014, 10:41

Aktuelles Datum einfügen per Makro

Beitrag von Freischreiber » Di 26. Mär 2024, 09:55

Hallo!

Beim Stöbern im Internet bin ich fündig geworden, wie man die dürftigen Datum-einfügen-Funktionen von Libreoffice erweitern kann.

Quelle:
http://www.openoffice.org/de/doc/howto/ ... nktiontext

Mein Wunsch war ein Makro zum Einfügen des aktuellen Datums als Text in Writer. Das klappt hiermit, und in Calc klappt es auch. Warum das Einfügen ausgerechnet mit meinem Lieblingsformat klappt (TT.MM.JJJJ), weiß ich nicht, aber warum soll ich nicht auch mal Glück haben. :mrgreen:

Dieses Makro habe ich auf das Tastenkürzel Strg + D gelegt:

Code: Alles auswählen

'Hauptmakro Quelle: http://www.openoffice.org/de/doc/howto/tutorials/howto_insert_date_de.html
Sub Insert_Date_As_Text
 Insert_As_Text( Date )
End Sub

'Hilfsfunktion:
Sub Insert_As_Text( aValue As String )

 oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
 oController = oDesktop.CurrentFrame.Controller
 oDocument = oController.Model

 ' insert as text for Calc ----------------------
 If oDocument.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) Then
 oSelection = oController.Selection
 oSelection.Formula = "'" & aValue ' apostroph forces string

 ' insert as text for Writer --------------------
 ElseIf oDocument.supportsService( "com.sun.star.text.TextDocument" ) Then
 oSelection = oDocument.CurrentSelection( 0 )
 oSelection.Text.insertString( oSelection, aValue, True )

 EndIf
End Sub

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2712
Registriert: Fr 10. Dez 2010, 10:01

Re: Aktuelles Datum einfügen per Makro

Beitrag von karolus » Di 26. Mär 2024, 11:00

Warum das Einfügen ausgerechnet mit meinem Lieblingsformat klappt (TT.MM.JJJJ), weiß ich nicht
Aber ich: Dein »Lieblingsformat« ist auch das voreingestellte Standard-format für Datum in deiner deutschen Lokalisierung… die auch von Basic genommen wird beim Aufruf von date

Warum du so einen Aufstand machst um das aktuelle Datum einzufügen erschliesst sich wiederum mir NICHT!

Code: Alles auswählen

Sub Datum_als_text()
   doc = ThisComponent
   If  doc.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) Then
      doc.CurrentSelection.String = date
   elseif  doc.supportsService( "com.sun.star.text.TextDocument" ) Then
      doc.CurrentSelection(0).String = date
   end if
End Sub
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

Freischreiber
* LO-Experte *
Beiträge: 866
Registriert: Fr 28. Mär 2014, 10:41

Re: Aktuelles Datum einfügen per Makro

Beitrag von Freischreiber » Di 26. Mär 2024, 11:30

karolus hat geschrieben:
Di 26. Mär 2024, 11:00
Warum das Einfügen ausgerechnet mit meinem Lieblingsformat klappt (TT.MM.JJJJ), weiß ich nicht
Aber ich: Dein »Lieblingsformat« ist auch das voreingestellte Standard-format für Datum in deiner deutschen Lokalisierung… die auch von Basic genommen wird beim Aufruf von date

Warum du so einen Aufstand machst um das aktuelle Datum einzufügen erschliesst sich wiederum mir NICHT!

Code: Alles auswählen

Sub Datum_als_text()
   doc = ThisComponent
   If  doc.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) Then
      doc.CurrentSelection.String = date
   elseif  doc.supportsService( "com.sun.star.text.TextDocument" ) Then
      doc.CurrentSelection(0).String = date
   end if
End Sub

1. Aha. Und wo kann man dieses voreingestellte Datumsformat sehen oder anpassen? In den LO-Optionen finde ich nichts dazu. Oder kommt das aus Windows?

2.
a) Weil ich nichts Kürzeres gefunden habe. Dein Post war heute morgen noch nicht in der Welt.
b) Weil ich selbst kein Makronesisch spreche.

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.

blende8
Beiträge: 297
Registriert: Mi 15. Jul 2015, 19:58

Re: Aktuelles Datum einfügen per Makro

Beitrag von blende8 » Di 26. Mär 2024, 12:02

Freischreiber hat geschrieben:
Di 26. Mär 2024, 11:30
1. Aha. Und wo kann man dieses voreingestellte Datumsformat sehen oder anpassen? In den LO-Optionen finde ich nichts dazu. Oder kommt das aus Windows?
Ja.
Win - I
Datum ...

Freischreiber
* LO-Experte *
Beiträge: 866
Registriert: Fr 28. Mär 2014, 10:41

Re: Aktuelles Datum einfügen per Makro

Beitrag von Freischreiber » Mi 27. Mär 2024, 08:50

blende8 hat geschrieben:
Di 26. Mär 2024, 12:02
Ja.
Win - I
Datum ...
Systemsteuerung - Region - Formate. Tatsächlich. :idea:

:idea: Achte auf die dritte Ziffer: Libre Office 25.2.0.3 = Ärger ist vorprogrammiert.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten