Partage
  • Partager sur Facebook
  • Partager sur Twitter

Macro seulement pour un unique document word

    10 mars 2019 à 10:20:06

    Bonjour à tous !

    Je n'y connais pas grand chose en paramètres avancés des macros Word, je connais les bases du VBA, j'arrive à créer les macros que je souhaite, mais je suis confronté à un problème : comment faire pour qu'une macro ne s'applique qu'à un seul et unique document word, et pas à tous ?

    Lorsque je travaille sur un document j'utilise des macros à exécution automatiques, qui me facilitent la tache, mais lorsque je travaille sur un autre document word, les macros s'activent aussi automatiquement, or je n'en ai pas besoin sur ces documents là.

    Faut-il que je je spécifie quelque chose dans le code VBA ? Faut-il que j'enregistre la macro dans un lieu spécifique ?

    Merci pour votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2019 à 12:23:33

      Salut,

      Tu peux modifier le code des macros pour qu'elle ne s'exécute que sur certains documents en se basant sur le nom du document courant. Si tu ne connais pas les noms à l'avance je ne vois pas comment tu peux faire.

      • Partager sur Facebook
      • Partager sur Twitter
        12 mars 2019 à 18:29:48

        Yes !

        Pendant la journée j'y ai pensé, je pourrais faire un "IF le document qui s'ouvre s'appelle "toto.odt" EXECUTER les macros ELSE rien ne se passe"

        Je vais chercher, si je trouve une solution je passe l'info et je met en résolu !

        Etant donné que je ne connais vraiment que les bases du VBA, si tu as une idée de comment je pourrais faire ce serait bien sympa ;)

        Merci pour ton aide !

        [EDIT]

        J'ai trouvé la solution après un certain temps de recherches :

        Sub AutoOpen()
             
        If ActiveDocument.Name = "toto.docx" Then
        
        End If
        
        End Sub



        -
        Edité par Thorgata 12 mars 2019 à 21:48:19

        • Partager sur Facebook
        • Partager sur Twitter
          13 mars 2019 à 9:18:04

          Voilà c'est à ça que je pensais :)

          Après, petite préférence personnelle car je trouve ça plus lisible c'est de mettre un exit sub plutôt que de tout englober.

          Sub AutoOpen()
              If Not ActiveDocument.Name = "toto.docx" Then Exit Sub
              ' Le code de ta macro
          End Sub



          • Partager sur Facebook
          • Partager sur Twitter
            13 mars 2019 à 12:17:48

            Bonjour,

            N'est-il-pas possible de placer la macro uniquement dans le document souhaité ?

            Comme ci-dessous ? (NOTE étant le nom de mon fichier word -> NOTE.doc)

            • Partager sur Facebook
            • Partager sur Twitter
              13 mars 2019 à 14:25:46

              Avec cette méthode je reçois une infobulle au moment d'enregistrer qui me dit qu'il est impossible d'enregistrer si le document ne contient pas de macro (je ne sais pas pourquoi, j'ai fait des recherches sur le web c'est assez flou)

              Mais en tout cas mon cas est bien résolu, les petites lignes de codes vba ont fait l'affaire !

              • Partager sur Facebook
              • Partager sur Twitter
                13 mars 2019 à 15:04:32

                Depuis plusieurs années (Office 2007 ?), Microsoft utilise un nouveau format pour enregistrer les documents : Open XML.

                On repère ces fichiers par le "x" à la fin de l'extension comme docx pour Word, xlsx pour Excel, pptx pour PowerPoint, etc ...

                Tu travailles certainement sur des docx sauf si tu ouvres des vieux fichiers, hors les docx ne peuvent pas enregistrer de macro, pour ça il faut enregistrer au format docm (document word prenant en charge les macros).

                Les fichiers qui datent d'avant l'Open XML (doc, xls, ppt, ...) sont des binaires qui peuvent contenir des macros.

                Déplacer la macro dans le document est aussi une bonne solution, pour choisir entre ça ou éditer le code ça dépend de quelle proportion de fichiers doit avoir l'exécution automatique.

                • Partager sur Facebook
                • Partager sur Twitter
                  13 mars 2019 à 19:36:23

                  Comme je vois que vous maitrisez le sujet, n'hésitez pas à faire un tour sur une autre question en rapport avec les macros : https://openclassrooms.com/forum/sujet/conserver-une-macro-word-dun-pc-a-un-autre 

                  Merci pour votre aide et vos conseils ;)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Macro seulement pour un unique document word

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown