IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Exécution à la création d'un document [OpenOffice][Texte]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 440
    Points : 2 771
    Points
    2 771
    Par défaut Exécution à la création d'un document
    Bonjour tout le monde,

    J'ai créé un modèle de lettre, et je voudrais que la date se mette à jour à la création d'un document.

    J'ai mis le mot date à l'emplacement adéquat, et une macro le remplace par la date du jour, formatée.

    La difficulté est que tout-à-l'heure si j'associais cette macro à l'événement "document créé", je voyais s'afficher un message d'erreur m'indiquant que la macro ne pouvait pas s'exécuter.

    Elle s'exécutait quand même, mais ça ne fait pas très propre, alors je laisse le bouton, sur la barre d'outils, pour exécuter la macro.

    J'ai subodoré que je devais signer mon module, pour cela on me dit que je dois d'abord l'enregistrer au format Open (je ne suis plus très sûr du mot). En fait je réalise que je dois enregistrer le modèle dans un répertoire où je pourrai y avoir accès, en lui donnant un mot de passe. Là, nouveau message : "Ce document contient des signatures au format ODF 1.1 (OpenOffice 2.x). Signer des documents dans OpenOffice 4.1.2 nécessite le format ODF 1.2. Aucune signature ne peut donc être ajoutée ou supprimée de ce document."

    Or, lorsque je cherche à enregistrer un document, dans "Fichier, enregistrer sous", la liste déroulante "Type" ne comporte qu'une valeur pour "modèle de document", qui se poursuit par "texte OpenOffice.org XML 1.0 (.stw)

    Ou est-ce que j'ai mal regardé ?

    Une erreur dans la démarche, peut-être ?

    Je précise que la boîte de dialogue Signatures numériques ne comporte aucune entrée, contrairement à ce que pourrait laisser entendre le message d'erreur.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Bonjour,

    Serait-il possible d'avoir le code de la macro ? Car j'ai fait des tests et cela fonctionne correctement.

    Cdlt.

  3. #3
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 440
    Points : 2 771
    Points
    2 771
    Par défaut
    Bonjour,

    Le bouton fonctionne bien, donc je soupçonne que le problème est moins dans le code que dans la façon de le déployer. Par exemple je l'avais d'abord mis dans le modèle normal, logiquement c'est mieux de le mettre dans le modèle à partir duquel le document est créé. A part que le code se retrouve dans le document ce dont on n'a peut-être pas besoin, enfin ça c'est une autre question.

    Après il y a la sécurité à régler, dans les options.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MajDate
      'MsgBox("M.à j. de la date")
      Document1 = ThisComponent
      FandR = Document1.createReplaceDescriptor
      FandR.SearchString = "date"
      strDate = Cstr(Day(Date)) + " " + NomMois(Month(Date)) + " " + CStr(Year(Date))
      'MsgBox(strDate)
      FandR.ReplaceString = strDate
      Found = Document1.findFirst(FandR)
      Found.setString(FandR.ReplaceString)
    End Sub
    Pour faire plus court je n'ai pas mis la fonction NomMois, avec strDate = Date on devrait pouvoir voir si le déploiement se fait bien ou pas.

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Cela vient peut-être que ton fichier n'est pas entièrement ouvert et disponible.
    Rajoute une temporisation au départ avec wait 1000 pour une tempo de 1s.

  5. #5
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 440
    Points : 2 771
    Points
    2 771
    Par défaut
    Peut-être faut-il que je prévoie de passer un peu plus de temps d'une traite, car ça fait deux fois que la difficulté se situe ailleurs que là où on l'attend.
    Depuis le modèle, ouvert, je fais Outils / Macros / Gérer les macros / OpenOffice Basic, ensuite je clique sur Assigner, je vais dans l'onglet Evénements, je clique sur "Document créé", puis sur le bouton Macro.
    Là-dedans je ne vois plus les modules du nouveau modèle, alors que c'était le cas hier, et dans le champ "Enregistrer dans" j'ai le nom du modèle Lettre1.stw (j'ai les modules du modèle normal, et les modules standard "Macros OpenOffice").
    Je regarde dans Outils / Options / Sécurité, Macros, et je vois que j'ai mis sécurité faible, donc je ne peux pas laisser longtemps comme ça.

    J'ai essayé d'appeler MajDate depuis le modèle normal, mais du coup il n'a pas été trouvé, alors même que le modèle est présent à l'arrière plan, dans la fenêtre courante.

  6. #6
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 440
    Points : 2 771
    Points
    2 771
    Par défaut
    ça y est ça marche, merci.

    L'événement à utiliser n'est pas "Document créé" mais "Nouveau document" -je serais incapable d'expliquer la différence entre les deux.

    En emplacement de confiance j'ai ajouté le répertoire où se trouve le modèle.

    ça fonctionne en "sécurité élevée".

    Pour élargir la question il pourrait être intéressant de savoir ajouter une signature pour fournir un développement fiable.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un document (imprimable, aperçu, exportable)
    Par Anified dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/01/2007, 12h55
  2. création et impression document
    Par argon dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 29/06/2006, 10h26
  3. [Excel] Création d'un document Excel avec PHP
    Par JuliaMendez dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 24/05/2006, 10h41
  4. [DOM XML][XSLT] Création d'un document XML avec PHP
    Par ToxiZz dans le forum Bibliothèques et frameworks
    Réponses: 21
    Dernier message: 16/01/2006, 17h44
  5. Réponses: 5
    Dernier message: 24/05/2005, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo