🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

Aktuelles Datum einfügen per Makro

Komponentenübergreifende Themen und Hilfe zu LibreOffice
Antworten
Freischreiber
* LO-Experte *
Beiträge: 833
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
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
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
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

Freischreiber
* LO-Experte *
Beiträge: 833
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.
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

blende8
Beiträge: 290
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: 833
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:
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


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