Seite 1 von 1

Aktuelles Datum einfügen per Makro

Verfasst: Di 26. Mär 2024, 09:55
von Freischreiber
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

Re: Aktuelles Datum einfügen per Makro

Verfasst: Di 26. Mär 2024, 11:00
von karolus
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

Re: Aktuelles Datum einfügen per Makro

Verfasst: Di 26. Mär 2024, 11:30
von Freischreiber
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.

Re: Aktuelles Datum einfügen per Makro

Verfasst: Di 26. Mär 2024, 12:02
von blende8
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 ...

Re: Aktuelles Datum einfügen per Makro

Verfasst: Mi 27. Mär 2024, 08:50
von Freischreiber
blende8 hat geschrieben:
Di 26. Mär 2024, 12:02
Ja.
Win - I
Datum ...
Systemsteuerung - Region - Formate. Tatsächlich. :idea: