Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 09/01/2017, à 18:51

papywil

[Pas résolu] le format date dans une macro

Bonjour à tous !
Une macro dans le traitement de texte LibreOffice appelée « essais » que je viens de réaliser devrait produire la date du jour dans le format « 8 janvier 2017 ». Lorsque j'appelle cette macro elle produit la date en format nombre à savoir « 42743 » sauf si préalablement au lancement de la macro j'ai ouvert et fermé sans rien activer la fenêtre « insertion/champs/autres champs ».

Etrange ! Voici le script de la macro :

sub essais
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(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 10076
args1(5).Name = "Separator"
args1(5).Value = " "

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

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


end sub

Qu'est-ce qui manque pour que cela fonctionne comme souhaité ? Merci.


Edit : mise entre balises code

Dernière modification par papywil (Le 13/01/2017, à 15:46)

Hors ligne

#2 Le 09/01/2017, à 19:03

J5012

Re : [Pas résolu] le format date dans une macro

ne faut-il pas prealablement charger le composant champs (fields), equivalent à une ouverture de "insertion champs" ?

Hors ligne

#3 Le 10/01/2017, à 14:56

papywil

Re : [Pas résolu] le format date dans une macro

Ah ? Merci c'est peut-être une bonne idée mais on fait comment ?

Hors ligne

#4 Le 10/01/2017, à 15:07

jplemoine

Re : [Pas résolu] le format date dans une macro

42743 = nombre de jours depuis le 01/01/1900 = stockage de la date.
Ensuite, on recrée la date au format humain en fonction du paramétrage.


Cordialement, Jean-Philippe.
Système principal Sous Ubuntu de 2009 à février 2015 - Xubuntu depuis.
Xubuntu 16.04 (poste principal portable) - Ubuntu 16.04 server (desktop converti en serveur DHCP, DNS, dépôt local et supervision (shinken))
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)

Hors ligne

#5 Le 10/01/2017, à 22:22

J5012

Re : [Pas résolu] le format date dans une macro

il y a l'instruction date qui produit la date du jour

Aide libreoffice basic

Date et heure du système
Les fonctions et les instructions suivantes définissent ou rétablissent la date et l'heure du système.

Instruction Date [Exécution]
Renvoie la date courante de l'ordinateur sous forme de chaîne de caractères ou réinitialise la date. Le format de date varie en fonction des paramètres définis pour votre système.

Syntaxe :
Date ; Date = Text As String

Paramètres :
Text : pour réinitialiser la date de l'ordinateur uniquement. Dans ce cas, l'expression au format chaîne de caractères doit correspondre au format de date défini dans vos paramètres locaux.

Exemple :
Sub ExampleDate
    Msgbox "La date est le " & Date
End Sub

Hors ligne

#6 Le 13/01/2017, à 15:49

papywil

Re : [Pas résolu] le format date dans une macro

Merci mais je ne crois pas que cette solution puisse convenir dans une macro de traitement de texte.

Hors ligne

#7 Le 14/01/2017, à 20:27

J5012

Re : [Pas résolu] le format date dans une macro

papywil a écrit :

Merci mais je ne crois pas que cette solution puisse convenir dans une macro de traitement de texte.

comment ca ?

la macro n'est-elle pas supposée s'executer à partir d'un document existant ?

Hors ligne