Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à jour des champs automatique

2 réponses
Avatar
TricksOfMind
Bonjour,
j'ai un long document (700+ pages) avec de très nombreuses tables des
matières.
Pour mettre à jour ces tables des matières, j'ai créé la macro suivante :
==========
For Each myTOC In ActiveDocument.TablesOfContents
myTOC.Update
myTOC.UpdatePageNumbers
Next myTOC
ActiveDocument.Fields.Update
==========

Mon problème est que Word s'interrompt au bout d'un certain temps pour me
dire qu'il ne pourra pas annuler l'opération.
Le problème c'est que je dois être devant l'écran pour lui dire de
continuer.

Peut on empêcher ce message d'arriver ou y répondre automatiquement ?

Merci à tous

2 réponses

Avatar
Jean-Guy Marcil
TricksOfMind was telling us:
TricksOfMind nous racontait que :

Bonjour,
j'ai un long document (700+ pages) avec de très nombreuses tables des
matières.
Pour mettre à jour ces tables des matières, j'ai créé la macro
suivante : ========= > For Each myTOC In ActiveDocument.TablesOfContents
myTOC.Update
myTOC.UpdatePageNumbers
Next myTOC
ActiveDocument.Fields.Update
========= >
Mon problème est que Word s'interrompt au bout d'un certain temps
pour me dire qu'il ne pourra pas annuler l'opération.
Le problème c'est que je dois être devant l'écran pour lui dire de
continuer.


Essaie avec cette ligne de code additionelle:

ActiveDocument.UndoClear

juste avant Next (En passant, ce n'est pas nécessaire d'écrire "Next myTOC",
quelque'un de très savant en programmation m'a expliqué pourquoi un jour,
mais j'ai oublié... c'est dans la même catégorie que "Dim x as Integer" au
lieu de "Dim x as Long", ça ralentit l'exécution...)

Aussi, ton code est un peu bizzare. Dans chaque TOC tu la mets à jour au
complet (incluant les numéros de page), puis tu mets à jour les numéros de
pages encore, enfin après avoir fait ça pour toutes les TOC, tu mets à jour
les champs dans le document (re-incluant les TOC)... Et si un de ces champ
mis à jour fait qu'une des TOC est incorrecte?

J'essaierai ceci à la place:

'_______________________________________
ActiveDocument.Fields.Update
For Each myTOC In ActiveDocument.TablesOfContents
myTOC.Update
ActiveDocument.UndoClear
Next
'_______________________________________

Mais je n'ai jamais vraiment travailler avec des documents contenant
beaucoup de TOC, alors peut-être as-tu tes raisons qui m'échappent!

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
TricksOfMind
Merci ça marche très bien !
(je ne programme plus depuis 15 ans alors j'ai parfois un peu de mal !)

"Jean-Guy Marcil" a écrit dans le message de news:
OHVXys$
TricksOfMind was telling us:
TricksOfMind nous racontait que :

Bonjour,
j'ai un long document (700+ pages) avec de très nombreuses tables des
matières.
Pour mettre à jour ces tables des matières, j'ai créé la macro
suivante : ========= >> For Each myTOC In ActiveDocument.TablesOfContents
myTOC.Update
myTOC.UpdatePageNumbers
Next myTOC
ActiveDocument.Fields.Update
========= >>
Mon problème est que Word s'interrompt au bout d'un certain temps
pour me dire qu'il ne pourra pas annuler l'opération.
Le problème c'est que je dois être devant l'écran pour lui dire de
continuer.


Essaie avec cette ligne de code additionelle:

ActiveDocument.UndoClear

juste avant Next (En passant, ce n'est pas nécessaire d'écrire "Next
myTOC", quelque'un de très savant en programmation m'a expliqué pourquoi
un jour, mais j'ai oublié... c'est dans la même catégorie que "Dim x as
Integer" au lieu de "Dim x as Long", ça ralentit l'exécution...)

Aussi, ton code est un peu bizzare. Dans chaque TOC tu la mets à jour au
complet (incluant les numéros de page), puis tu mets à jour les numéros de
pages encore, enfin après avoir fait ça pour toutes les TOC, tu mets à
jour les champs dans le document (re-incluant les TOC)... Et si un de ces
champ mis à jour fait qu'une des TOC est incorrecte?

J'essaierai ceci à la place:

'_______________________________________
ActiveDocument.Fields.Update
For Each myTOC In ActiveDocument.TablesOfContents
myTOC.Update
ActiveDocument.UndoClear
Next
'_______________________________________

Mais je n'ai jamais vraiment travailler avec des documents contenant
beaucoup de TOC, alors peut-être as-tu tes raisons qui m'échappent!

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org