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 :

Executer une macro sur TOUS les documents ouvert [LibreOffice]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Executer une macro sur TOUS les documents ouvert
    Bonjour,

    J'ai souvent des petits soucis de compatibilités excel/calc ou word/writter etc. Souvent cela se corrige avec la configuration de libre office ou en ajustant le fichier d'origine. Dernièrement j'ai eu ce soucis là :
    http://www.developpez.net/forums/d14...-formule-text/

    Si je ne peux pas trouver de solution générique, cela obligera à chaque ouverture d'un fichier, à exécuter un rechercher/remplacer ou à adapter légèrement le fichier. J'aimerai pouvoir créer une macro qui se chargera de reformater tout fichier ouvert avec les bonnes règles. Mais est-ce que je peux faire ça ?


    En gros configurer calc/writter pour qu'à l'ouverture d'un document (y compris un document existant ou importé par mail), il exécute la macro sans demander confirmation à l'utilisateur ?

  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
    Salut,

    Voici une macro qui liste toutes les documents ouverts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub BoucleDocuments()
        dim lesDocs, laCollection, leDoc
        on error resume next
        lesDocs = StarDesktop.Components
        laCollection = lesDocs.createEnumeration
        while laCollection.hasMoreElements
            leDoc = laCollection.nextElement
            MsgBox "Nom du fichier " & leDoc.URL
        wend
    End Sub
    Il te suffit ensuite de rajouter à la ligne 8 MsgBox "Nom du fichier " & leDoc.URL le code à exécuter.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Merci Zoom mais ma question n'est pas celle-ci (ou alors j'ai mal compris la réponse).

    Il faudrait que je puisse exécuter une macro (toujours la même) à l'ouverture de n'importe quel fichier calc/writter (systématiquement et sans que l'utilisateur ait quelque chose à faire). Cela me permettrait de faire des vérifications sur la compatibilité et auto-corriger tout ce qui est possible.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    tu peux utiliser l'exécution de macro sur évenement.

    menu Outils/Personnaliser onglet évenements.
    Choisir LibreOffice dans la combo Enregistrer dans
    Choisir comme événement Chargement du document terminé
    Cliquer sur le bouton Macro
    Choisir la macro à effectuer dans les macros Mes macros (et pas dans les macros du document). Cliquer sur OK
    Valider votre personnalisation en cliquant sur OK

    Et voilà, la macro sera exécutée à chaque fin de chargement d'un document libreOffice.

    Il est indispensable que suivant la fonction de la macro celle-ci teste le type de document ouvert et peut être aussi le nom du document pour ne pas exécuter la macro sur n'importe quel document.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    merci c'est parfaitement ce que je voulais

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

Discussions similaires

  1. [XL-2003] Une macro sur tous les onglets
    Par Maksym dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 23/01/2013, 13h28
  2. Exécuter une macro sur tous les onglets d'un fichier sauf un
    Par Marsama dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2011, 17h38
  3. [XL-2003] Exécuter une macro sur tous les fichiers d'un dossier.
    Par ahmet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2009, 09h49
  4. Execution macro sur tous mes documents words
    Par Balbo dans le forum VBA Word
    Réponses: 1
    Dernier message: 11/07/2008, 11h21
  5. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 15h06

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