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 :

Emplacement des macros (pour création d'un document)


Sujet :

OpenOffice & LibreOffice

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 126
    Points : 2 237
    Points
    2 237
    Par défaut Emplacement des macros (pour création d'un document)
    Bonjour tout le monde,

    J'ai un peu peur de poser une question bateau, pour autant je suis un peu désemparé quant à dire quelle est la bonne clef de recherche.

    J'ai écrit un modèle de courrier, avec le nom et adresse de l'expéditeur et l'emplacement de l'adresse du destinataire, et une macro met à jour l'emplacement de la date lors de la création d'une nouvelle lettre.

    Donc, pour chaque document, cette macro ne sert qu'une fois. Enfin en général.

    Si on rouvre la lettre, voilà-t-y pas qu'Open Office affiche un avertissement comme quoi ce document contient des macros, et demande si on veut l'ouvrir quand même.

    Certes on n'a qu'à répondre oui, mais enfin je me dis qu'il serait peut-être plus propre que la macro, qui ne sert qu'une fois, ne soit pas enregistrée dans le document.

    Une macro à exécuter lors de la création d'un document, normalement, doit être dans son modèle, non ?
    Mais est-ce qu'on ne peut pas s'abstenir de l'enregistrer dans le document ?

    Ajouter une instruction pour retirer le module en fin de traitement ?

  2. #2
    Membre actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Points : 218
    Points
    218
    Par défaut
    Bonsoir,

    Une macro à exécuter lors de la création d'un document, normalement, doit être dans son modèle, non ?
    Plus exactement, une macro doit être enregistrée dans un document, writer, calc. Je pense que c'est pareil avec base et draw, je ne l'ai pas testé.

    Tu peux écrire une macro dans un document parent, ton modèle ici, et enfanter un document fils qui recevra les éléments que tu renseignes pour ton courrier.

    Tu as besoin de la méthode com::sun::star::frame::loadComponentFromURL(interface XComponentLoader : https://www.openoffice.org/api/docs/...entLoader.html)

    En plus de l'objet Document thisComponent représentant le fichier parent :

    Pour la création d'un fichier fils :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim ObjetDocument as object
    Dim Desktop as object                                         }
    Desktop = createUnoService("com.sun.star.frame.Desktop")      } déclarations inutiles si tu fais appel à starDesktop
    Dim NoArgs() ' à renseigner même s'il n'y a pas d'arguments
     
    ObjetDocument = Desktop.loadComponentFromURL("private:factory/scalc","_blank",0,NoArgs()) 	' pour un fichier calc     ' ou ObjetDocument = starDesktop.loadComponentFromURL("private:factory/scalc","_blank",0,NoArgs())
    ObjetDocument = Desktop.loadComponentFromURL("private:factory/swriter","_blank",0,NoArgs())	' pour un fichier writer    'ou ObjetDocument = starDesktop.loadComponentFromURL("private:factory/swriter","_blank",0,NoArgs())
    Pour l'ouverture d'un fichier fils existant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim ObjetDocument as object
    Dim chemin as string
    Dim Array()
    chemin = "file:///c:\répertoire\fichier" ' fichier writer ou calc, si c'est un fichier texte, tu dois préciser ses propriétés dans les arguments(tu as un exemple dans le sujet :  Macro pour tracer une courbe a partir d'un fichier importé de James93)
    ObjetDocument = StarDesktop.LoadComponentFromURL(ConvertToURL(chemin),"_blank",0,Array()) ' pour OS sous DOS (ConverTo URL)
    chemin = "file:///home/répertoire/fichier"
    ObjetDocument = StarDesktop.LoadComponentFromURL(chemin,"_blank",0,Array()) ' pour OS linux
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 126
    Points : 2 237
    Points
    2 237
    Par défaut
    Ah, donc l'idée, c'est qu'on ne va pas créer un nouveau document selon un modèle, mais avoir une interface dans le modèle standard qui va effectuer un copier/coller d'un document donné ?

  4. #4
    Membre actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Points : 218
    Points
    218
    Par défaut
    C'est plutôt un document qui contient un modèle standard qui est copié par la macro dans un nouveau document créé pour l'occasion selon le besoin. Ainsi ce nouveau document ne contient pas de macro.
    Pascaltech

    Traduction : guides, manuels, normes : http://tradinfo.e-monsite.com/

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/10/2012, 19h59
  2. Réponses: 6
    Dernier message: 24/02/2012, 14h25
  3. [WD-2010] macro pour remplacer mot par document
    Par cpf2006 dans le forum VBA Word
    Réponses: 3
    Dernier message: 29/08/2011, 17h26
  4. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 11h59
  5. Réponses: 21
    Dernier message: 31/01/2006, 16h39

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