Partage de macros entre des documents

Fermé
Contagious - 18 juil. 2017 à 14:54
 perceval - 19 juil. 2017 à 12:07
Bonjour,

J'aimerai savoir s'il existe un moyen simple de partager les macros qui sont communes à plusieurs documents word. Je ne souhaite pas les enregistrer dans Normal car ces documents sont partagés sur le réseau. Jusqu'à ce jour, lorsque j'ajoute une macro, je la copie/colle dans chacun de mes documents. J'aimerai plutôt trouver un moyen de les partager. Est-ce possible ? Je me suis dit qu'on pourrait peut-être les mettre dans un des documents et ensuite faire appel aux macros de ce document; le problème étant qu'elle s'exécute pas dans le document que je veux (mais elle s'execute dans le document contenant la macro).
Auriez-vous des pistes de réflexion ?

2 réponses

Bonjour Contagious,

Il faut que tu crées un nouveau modèle de document .docm, où tu mettras
tes macros personnelles ; ensuite, tes documents qui doivent utiliser ces
macros doivent être basés sur ce nouveau modèle.

Cordialement
 
0
Merci pour votre réponse perceval :) Désolé je suis débutant, j'ai cherché sur internet mais en vain : comment est-ce que je peux baser mon document sur ce nouveau modèle ? Est-ce qu'il est possible de ne pas me baser uniquement sur ce modèle, mais aussi d'utiliser des macros propres à mon document ? En gros j'ai plein de macros communes, mais certains macros spécifiques au document.
Un grand merci en tout cas ;)
0
perceval > Contagious
Modifié le 18 juil. 2017 à 16:32
 
1) Pour baser le document sur un modèle, ouvrir le document, puis :
bouton Office (= menu Fichier), bouton « Options Word » ; côté gauche,
choisir Compléments ; à droite, en bas, à gauche du bouton "Atteindre",
choisir dans la liste « Modèles » et cliquer sur le bouton à droite =>
fenêtre « Modèles et compléments » ; sur le 1er onglet « Modèles » :
le nom présélectionné est en principe « Normal » (c'est donc en fait
le fichier Normal.dotm) ; pour le remplacer, cliquer sur le bouton
« Attacher... » et dans la fenêtre, sélectionner le dossier du modèle,
puis le fichier modèle ; valider tout (au fur et à mesure).

2) Le document sera donc basé sur le modèle que tu as choisi (et qui
contient toutes les macros communes, qu'il pourra utiliser) ; les autres
macros que tu mets dans ton document (pas dans le modèle) seront
tes macros spécifiques du document.
 
0
Merci beaucoup, ça fonctionne sur le coup. Cependant, ce qui est bizzard c'est que ça se décoche tout seul à chaque fois que je ferme puis rouvre mon document :S Est-ce normal ? Moi j'aimerai ne pas avoir à aller recocher à chaque ouverture de document, est-ce possible ?
0
perceval > Contagious
19 juil. 2017 à 09:24
Ce que tu décris est bien pour activer les macros à chaque fois ?
Quelle est ta version de Word ? À te lire pour la suite.
0
Je dispose de Word 2010. Par exemple j'ai un document word appelé docSource qui contient toutes mes macros. Jai i autres documents qu'on apellera doc_i. J'aimerai pouvoir utiliser les macros de docSource dans mes doc_i. L'un des méthodes est d'exporter mes macros de docSource pour les importer dans mes doc_i mais c'est super long à faire à chaque modification. J'aimerai donc dire que je me sert des macros de docSource dans mes doc_i. Là j'ai essayé de faire ce que tu m'a dit, j'arrive à me servir de mes macros de docSource dans doc_i grâce aux manipulations dans "compléments". Cependant quand j'ouvre et referme mes doc_i , dans "compléments" mon docSource est alors systématiquement décoché.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
19 juil. 2017 à 00:07
Bonjour,

Tu as ActiveDocument qui est le document actif.
Pour y faire référence tu peux utiliser With, et faire précéder l'objet voulu d'un . pour spécifier que tu t'adresses à l'objet du With.
Un exemple pour éclairer :
Sub test()
    With ActiveDocument
        MsgBox "Le document actif a " & .Paragraphs.Count & " paragraphes"
    End With
End Sub

note le . devant Paragraphs
ou bien directement :
MsgBox "Le document actif a " & ActiveDocument.Paragraphs.Count & " paragraphes"

Pour le document ayant la macro ça sera ThisDocument
eric

0
Merci eriiic, cependant je ne comprend pas bien comment l'utiliser dans mon cas de figure : J'ai un document doc1 qui contient mes macros, j'ai un autre document doc2 et j'aimerai pouvoir utiliser mes macros de doc1 dans doc2 (il s'agit principalement de macros d'insertions de textes ou d'objets). Selon vous, quelle serai la commande à exécuter pour le faire avec ThisDocument ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié le 19 juil. 2017 à 09:45
Bonjour,
Effectivement tu n'as rien compris, c'est ActiveDocument qu'il faut utiliser.

A part que tu relises tranquillement et que tu réfléchisses à ce que je t'ai écrit je ne vois pas quoi faire d'autre. Il y a un exemple et je ne peux pas comprendre à ta place.
ActiveDocument permet de désigner explicitement le document actif là où c'est nécessaire.
eric
0