0. Introduction▲
Word est capable de réagir lorsque certaines choses se produisent. Ces "choses" sont appelées des évènements.
Ces évènements peuvent être de différentes natures. Nous allons les passer en revue et apprendre
à les mettre en oeuvre.
1. Au niveau des documents▲
Les évènements les plus simples à utiliser sont sur les documents.
En fonction du document qui contient le code, la portée de l'évènement sera différente.
Il n'est possible de détecter les évènements que dans le module associé au document "ThisDocument",
il n'est pas possible d'utiliser ces évènements dans un module normal.
Évitez de mettre vos codes dans le Normal.dotm, vous éliminerez certains aléas.
Localisation | Portée |
---|---|
Normal.dotm | Se produira sur tous les documents |
modèle | Sera déclenchée pour tous les documents issu de ce modèle. |
document | Pour le document contenant le code |
Pour insérer le code, la méthode la plus sûre est le choix de Document dans la liste déroulante de
VBE.
Et l'évènement associé.
1-A. Document_Open▲
Cet évènement se produit lors de chaque ouverture du document.
Private
Sub
Document_Open
(
)
MsgBox
"Ouverture du document"
End
Sub
Cet évènement est surtout intéressant si vous utilisez un UserForm pour permettre à l'utilisateur de faire des choix ou entrer certaines données.
Private
Sub
Document_Open
(
)
MonUserForm.Show
End
Sub
1-B. Document_New▲
Cet évènement se produit lors de la création d'un nouveau document. Ce code pour être utile doit se trouver dans un modèle.
Private
Sub
Document_New
(
)
End
Sub
Une des utilisations de cet évènement est le remplissage des coordonnées de l'utilisateur.
Cet évènement se produit aussi lorsque vous créer un nouveau document au départ de VBA.
1-C. Document_Close▲
Cet évènement se produit lors de la fermeture du document. L'exemple ci-après va inhiber le message de demande de sauvegarde.
Private
Sub
Document_Close
(
)
ActiveDocument.Saved
=
True
End
Sub
1-D. Document_Sync▲
Cet évènement se produit à la synchronisation de votre document si vous travaillez avec des documents issu d'un serveur SharePoint.
Private
Sub
Document_Sync
(
ByVal
SyncEventType As
Office.MsoSyncEventType
)
End
Sub
1-E. Document_ContentControlAfterAdd▲
Cet évènement se produit lorsque vous insérez un bloc de construction (BuildingBloc).
Private
Sub
Document_ContentControlAfterAdd
(
ByVal
NewContentControl As
ContentControl, ByVal
InUndoRedo As
Boolean
)
MsgBox
NewContentControl.Type
&
" Ajouté"
End
Sub
Si le type de contrôle le permet, vous pouvez y ajouter votre texte.
Private
Sub
Document_ContentControlAfterAdd
(
ByVal
NewContentControl As
ContentControl, ByVal
InUndoRedo As
Boolean
)
NewContentControl.Range.Text
=
" Avec les compliments de developpez.com "
End
Sub
Cet évènement est aussi exploitable lorsque le contrôle de contenu est inséré avec du code.
1-F. Document_ContentControlBeforeContentUpdate▲
Un contrôle de donctenu est un objet contenant certaines imformations relatives au document.
Comment insérer un contrôle de contenu ?
Private
Sub
Document_ContentControlBeforeContentUpdate
(
ByVal
ContentControl As
ContentControl, Content As
String
)
End
Sub