|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Inactif
Inscription : décembre 2008 Messages : 29 ![]() |
Bonjour à tous,
en VBA : comment serait-il possible de détecter la demande de mise à jour de la table des matières d'un document pour désactiver le mode révision (avant l'opération) puis le réactiver ensuite ? Pas de soucis en ce qui concerne le switch du mode révision, par contre je sèche pour ce qui est de la mise à jour. L'idée serait d'intercepter des "events" et/ou des Word "build-in commands" en surchargeant la fonction de qui va bien. Mes pistes actuelles sont : - Build in commands : UpdateToc, UpdateTocFull (cf. Word Commands.xls dispo ici) - Document_UpdateTableOfContents (cf. enregistrement de la macro avec clic sur le bouton du ruban) : mais dans ce cas, un clic droit sur la TOC suivi de l'option de mise à jour ne sera pas pris en compte. Des idées ? Merci ^^ |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 308 ![]() |
Salut,
Dans ton raisonnement, tu commets une erreur. N'est pas un évènement mais une méthode. Et la bonne syntaxe est : Code :
ActiveDocument.TablesOfContents(1).Update
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#3 |
|
Inactif
Inscription : décembre 2008 Messages : 29 ![]() |
tout à fait d'accord Heureux-oli
Dans le cas de la fonction : je la surcharge dans la Microsoft Word Objects > ThisDocument. Ça fonctionne mais la portée est limitée alors que je souhaiterai intercepter toute les tentatives de mise à jour (cf mon post précédent / Comprendre : quel que soit le moyen employé dans l'interface de Word). Je ne désespère pas d'y arriver et reste à l'écoute. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 308 ![]() |
Salut,
Je ne vois pas comment faire ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#5 | ||
|
Inactif
Inscription : décembre 2008 Messages : 29 ![]() |
Salut, j'ai enfin trouvé !
![]() si une solution aurait consisté à détecter l'activation de la boite de dialogue wdDialogUpdateToc, j'ai préféré le principe de surcharger une built-in command ; suffisait juste de trouver laquelle. En l'occurence : - UpdateFields, la commande exécutée lorsque l'utilisateur choisit une mise à jour par clic droit ; - MettreÀJourTableMatières, la commande exécutée lorsque l'utilisateur passe par le ruban Word. (/!\ les noms des commandes changent selon la version linguistique utilisée/!\) A titre d'exemple, voici du code fonctionnant chez moi : Code :
Voilou, le sujet me paraît donc résolu ++ |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com