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

VBA Word Discussion :

Exécuter une macro qui se trouve dans un autre document [WD-2010]


Sujet :

VBA Word

  1. #1
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Août 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 77
    Points : 55
    Points
    55
    Par défaut Exécuter une macro qui se trouve dans un autre document
    Bonjour !

    J'ai un module MODTest dans mon modèle Normal.dotm.

    Dedans, j'ai cette procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Test()
       Msgbox "Hello"
    End Sub
    Je suis dans un autre document DOCQuelconque.docm. Je crée ce code événementiel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Document_Close()
       Test
    End Sub
    Ca marche très bien, il me dit "Hello" à la fermeture du document.

    MAIS

    A la place d'un document, je crée un modèle ModeleQuelconque.doTm, et que j'y crée les 2 procédures événementielles suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Document_New()
       Test
    End Sub
     
    Private Sub Document_Close()
       Test
    End Sub
    J'enregistre mon modèle, je quitte word, je relance word, je fais fichier/Nouveau, et je choisis mon modèle ModeleQuelconque.doTm, alors il exécute bien Private Sub Document_New

    MAIS quand je fais Fichier/Fermer, j'ai un message d'erreur "Erreur de compilation Sub ou Function non définie", alors que Normal.dotm est toujours bien ouvert.

    J'ai essayé de remplacer l'appel à test
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Documents("Normal.dotm").Test
    Mais j'ai un autre message : "Erreur d'exécution 4169. Nom de fichier incorrect"

    POURQUOI donc le fait qu'il s'agisse d'un modèle vient changer les choses ? ... Merci d'avance de vos avis...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Salut,

    pour exécuter une macro, on passe généralement par
    Dans l'aide en ligne MS, tu trouves même la syntaxe qui devrait te plaire
    https://msdn.microsoft.com/fr-fr/vba...un-method-word
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre du Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Août 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 77
    Points : 55
    Points
    55
    Par défaut
    EXCELLENT !!!

    Ces deux lignes de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.Run "Normal.NewMacros.Test"
    Application.Run "'Normal.dotm'!NewMacros.test"
    Fonctionnent aussi bien l'une que l'autre !

    Merci mille fois !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2017, 14h09
  2. [XL-2013] Copier cellules en ligne dans une colonne qui se trouve dans un autre classeur
    Par Wushugringo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2015, 08h07
  3. Référencer une équation qui se trouve dans un autre document
    Par Dadi07 dans le forum Mathématiques - Sciences
    Réponses: 8
    Dernier message: 04/07/2014, 00h00
  4. Exécution d'une procédure qui se trouve dans un autre classeur
    Par enchanté dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/07/2007, 09h31
  5. Réponses: 7
    Dernier message: 16/06/2006, 16h31

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