Comment intégrer modules VBA dans documents basé sur modèles ?
1 réponse
troismille
Bonjour,
Quelqu'un a-t-il une astuce pour simplement, quand j'enregistre un
document basé sur un modèle, enregistrer les macros dans les .DOC
générés depuis le modèle ?
Je m'explique avec une petite histoire :
J'ai un modèle (Toto.dot) dans lequel j'ai une procédure VBA :
Sub Bidule()
MsgBox "Ce message est très important"
End Sub
Je fais Fichier/Nouveau, et je demande un nouveau document basé sur
Toto.Dot
J'écris un petit texte dedans, histoire de le modifier :
"Bonjour Frérot, je te conseille d'exécuter Bidule"
J'enregistre mon document sous "BeauTexte.doC"
J'envoie ce document par E-Mail à mon frère
Et quand il essaie d'aller dans le menu Outils/Macros/Macros : Pas de
Bidule !
Et pour cause : En fait, quand je reste en local et que j'ouvre
BeauTexte, Word m'ouvre également (en arrière-plan) Toto.DOT, qui est
le modèle qui a servi de base dans le
but notamment de récupérer les macros.
J'ai bien pensé lui envoyer également le modèle, mais mon frère me dit
qu'il a déjà un modèle qui s'appelle Toto.dot.
Je peux évidemment créer Toto.DOC, et à chaque fois que je veux créer
un nouveau document basé sur ce pseudo-modèle, je fais
Fichier/Enregistrer sous... Mais ça me parait
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'Info 3000' nous a écrit ...
Quelqu'un a-t-il une astuce pour simplement, quand j'enregistre un document basé sur un modèle, enregistrer les macros dans les .DOC générés depuis le modèle ? Je m'explique avec une petite histoire : J'ai un modèle (Toto.dot) dans lequel j'ai une procédure VBA : Sub Bidule() Je fais Fichier/Nouveau, et je demande un nouveau document basé sur Toto.Dot J'envoie ce document par E-Mail : Pas de Bidule !
Héritage des macros d'un modèle dans ses documents : - Placez la procédure Bidule dans un *Module* de Toto.dot - Placez dans un autre module de Toto.dot une macro automatique qui va copier ce module nommé par exemple MonModule dans chaque nouveau document :
Public Sub AutoNew() ' Copie le module MonModule dans chaque nouveau document Application.OrganizerCopy _ Source:¬tiveDocument.AttachedTemplate.FullName, _ Destination:¬tiveDocument.FullName, _ Name:="MonModule", _ Object:=wdOrganizerObjectProjectItems End Sub
Ça vous convient comme solution ?
Anacoluthe « Il est plus facile de copier que de penser. » - Wallace STEVENS
Bonjour !
'Info 3000' nous a écrit ...
Quelqu'un a-t-il une astuce pour simplement, quand j'enregistre un
document basé sur un modèle, enregistrer les macros dans les .DOC
générés depuis le modèle ?
Je m'explique avec une petite histoire :
J'ai un modèle (Toto.dot) dans lequel j'ai une procédure VBA :
Sub Bidule()
Je fais Fichier/Nouveau, et je demande un nouveau document basé sur
Toto.Dot
J'envoie ce document par E-Mail : Pas de Bidule !
Héritage des macros d'un modèle dans ses documents :
- Placez la procédure Bidule dans un *Module* de Toto.dot
- Placez dans un autre module de Toto.dot une macro automatique
qui va copier ce module nommé par exemple MonModule dans
chaque nouveau document :
Public Sub AutoNew()
' Copie le module MonModule dans chaque nouveau document
Application.OrganizerCopy _
Source:¬tiveDocument.AttachedTemplate.FullName, _
Destination:¬tiveDocument.FullName, _
Name:="MonModule", _
Object:=wdOrganizerObjectProjectItems
End Sub
Ça vous convient comme solution ?
Anacoluthe
« Il est plus facile de copier que de penser. »
- Wallace STEVENS
Quelqu'un a-t-il une astuce pour simplement, quand j'enregistre un document basé sur un modèle, enregistrer les macros dans les .DOC générés depuis le modèle ? Je m'explique avec une petite histoire : J'ai un modèle (Toto.dot) dans lequel j'ai une procédure VBA : Sub Bidule() Je fais Fichier/Nouveau, et je demande un nouveau document basé sur Toto.Dot J'envoie ce document par E-Mail : Pas de Bidule !
Héritage des macros d'un modèle dans ses documents : - Placez la procédure Bidule dans un *Module* de Toto.dot - Placez dans un autre module de Toto.dot une macro automatique qui va copier ce module nommé par exemple MonModule dans chaque nouveau document :
Public Sub AutoNew() ' Copie le module MonModule dans chaque nouveau document Application.OrganizerCopy _ Source:¬tiveDocument.AttachedTemplate.FullName, _ Destination:¬tiveDocument.FullName, _ Name:="MonModule", _ Object:=wdOrganizerObjectProjectItems End Sub
Ça vous convient comme solution ?
Anacoluthe « Il est plus facile de copier que de penser. » - Wallace STEVENS