Mise à jour table des matières par macro

Le
Anmapie
Bonjour tous,

J'ai un document Word 2000 qui contient des sections,
certaines sont verrouilles et d'autres ne le sont pas
comme celle qui contient la table des matires.
J'ai crer un signet nomm "Table_des_matires" au dbut
de la table des matires.
J'ai enregistr une macro qui atteint le signet, qui met
ensuite la table des matires jour.

Mon problme: Lorsque je fais des ajouts sans faire aucune
suppression, la table des matires ne se met pas jour.
Par contre si je supprime des lments qui figuraient dans
la table elle se met jour.

Que faut-il que j'ajoute ma macro pour qu'elle puisse
mettre jour la table des matires lorsque j'ajoute
seulement des lments?

Voici ma macro:
Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matires"
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Fields.Update

Merci beaucoup
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #890646
Bonsoir à tous,
En attendant les caids du VBA cela ne m'étonne guère car lorsqu'on utilise la mise à jour de la table des matière en interface
utilisateur, il faut pour obtenir ce que tu cherches choisir l'option "Mettre à jour toute la table".
Espérant t'avoir été utile.
Merci d'avoir lu jusque là.

Anmapie wrote:
Bonjour à tous,

J'ai un document Word 2000 qui contient des sections,
certaines sont verrouillées et d'autres ne le sont pas
comme celle qui contient la table des matières.
J'ai créer un signet nommé "Table_des_matières" au début
de la table des matières.
J'ai enregistré une macro qui atteint le signet, qui met
ensuite la table des matières à jour.

Mon problème: Lorsque je fais des ajouts sans faire aucune
suppression, la table des matières ne se met pas à jour.
Par contre si je supprime des éléments qui figuraient dans
la table elle se met à jour.

Que faut-il que j'ajoute à ma macro pour qu'elle puisse
mettre à jour la table des matières lorsque j'ajoute
seulement des éléments?

Voici ma macro:
Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matières"
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Fields.Update

Merci beaucoup


anmapie
Le #890447
Bonjour,

Lorsque j'ai enregistré la macro j'ai choisi
l'option "Mettre à jour toute la table" et ça ne
fonctionne pas.

Merci quand même
-----Message d'origine-----
Bonsoir à tous,
En attendant les caids du VBA cela ne m'étonne guère car
lorsqu'on utilise la mise à jour de la table des matière

en interface
utilisateur, il faut pour obtenir ce que tu cherches
choisir l'option "Mettre à jour toute la table".

Espérant t'avoir été utile.
Merci d'avoir lu jusque là.

Anmapie wrote:
Bonjour à tous,

J'ai un document Word 2000 qui contient des sections,
certaines sont verrouillées et d'autres ne le sont pas
comme celle qui contient la table des matières.
J'ai créer un signet nommé "Table_des_matières" au début
de la table des matières.
J'ai enregistré une macro qui atteint le signet, qui met
ensuite la table des matières à jour.

Mon problème: Lorsque je fais des ajouts sans faire
aucune


suppression, la table des matières ne se met pas à jour.
Par contre si je supprime des éléments qui figuraient
dans


la table elle se met à jour.

Que faut-il que j'ajoute à ma macro pour qu'elle puisse
mettre à jour la table des matières lorsque j'ajoute
seulement des éléments?

Voici ma macro:
Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matières"
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Fields.Update

Merci beaucoup



.




Geo
Le #890443
Bonjour Anmapie


J'avoue ne pas comprendre pourquoi ta macro marche dans un cas et pas
l'autre
J'aurais même été tenté de dire qu'elle ne devrait jamais marcher car
ton signet, dis-tu, est placé avant la table des matières, il n'inclut
pas cette table.
Tu devrais essayer quelquechose comme :

ActiveDocument.TablesOfContents(1).Update
(pas testé)

--

A+
Le #890240
Bonsoir à tous,
Ben tu m'as bien fait chercher, je te conseille de chercher dans le sens du code de "TablesOfContents"
Masi c'est vrai que la question semble basique (ne pas confondre avec wordbasic ;-))
Espèrant t'avoir été utile.
Merci d'avoir lu jusque là.

[blague privé]
En tout cas merci Geo, mais là l'Indiana Jones de l'éditeur VBA m'a fourvoyer. Ou je me suis fourvoyer en l'explorant. Mais je dois
tout de même de remercier une fois de plus...




"anmapie" Bonjour,

Lorsque j'ai enregistré la macro j'ai choisi
l'option "Mettre à jour toute la table" et ça ne
fonctionne pas.

Merci quand même
-----Message d'origine-----
Bonsoir à tous,
En attendant les caids du VBA cela ne m'étonne guère car
lorsqu'on utilise la mise à jour de la table des matière

en interface
utilisateur, il faut pour obtenir ce que tu cherches
choisir l'option "Mettre à jour toute la table".

Espérant t'avoir été utile.
Merci d'avoir lu jusque là.

Anmapie wrote:
Bonjour à tous,

J'ai un document Word 2000 qui contient des sections,
certaines sont verrouillées et d'autres ne le sont pas
comme celle qui contient la table des matières.
J'ai créer un signet nommé "Table_des_matières" au début
de la table des matières.
J'ai enregistré une macro qui atteint le signet, qui met
ensuite la table des matières à jour.

Mon problème: Lorsque je fais des ajouts sans faire
aucune


suppression, la table des matières ne se met pas à jour.
Par contre si je supprime des éléments qui figuraient
dans


la table elle se met à jour.

Que faut-il que j'ajoute à ma macro pour qu'elle puisse
mettre à jour la table des matières lorsque j'ajoute
seulement des éléments?

Voici ma macro:
Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matières"
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Fields.Update

Merci beaucoup



.




anmapie
Le #890236
Bonjour Geo,

J'ai essayé le code, mais ça ne fonctionne pas car le
document est protégé. Selon ce que tu me dis concernant
mon signet au début de la table des matières, est-ce que
je devrais inclure la table des matières dans le signet?

Merci
-----Message d'origine-----
Bonjour Anmapie


J'avoue ne pas comprendre pourquoi ta macro marche dans
un cas et pas

l'autre
J'aurais même été tenté de dire qu'elle ne devrait jamais
marcher car

ton signet, dis-tu, est placé avant la table des
matières, il n'inclut

pas cette table.
Tu devrais essayer quelquechose comme :

ActiveDocument.TablesOfContents(1).Update
(pas testé)

--

A+




.



Le #890235
Bonsoir à tous,
Pour Geo et Anmapie, testé, Ok !
Geo, je n'avais pas vu ton message de 22h02 à 22h07 désolé
mais en cherchant pendant une heure, j'ai trouvé une contribution plus complète de ta part, d'où mes remerciement.

Merci d'avoir lu jusque là.

Geo wrote:
Bonjour Anmapie


J'avoue ne pas comprendre pourquoi ta macro marche dans un cas et pas
l'autre
J'aurais même été tenté de dire qu'elle ne devrait jamais marcher car
ton signet, dis-tu, est placé avant la table des matières, il n'inclut
pas cette table.
Tu devrais essayer quelquechose comme :

ActiveDocument.TablesOfContents(1).Update
(pas testé)


Geo
Le #890234
Bonjour anmapie


Bonjour Geo,

J'ai essayé le code, mais ça ne fonctionne pas car le
document est protégé. Selon ce que tu me dis concernant
mon signet au début de la table des matières, est-ce que
je devrais inclure la table des matières dans le signet?


Ca marcherait avec une mise à jour de champ mais pas avec update.
La logique m'échappe.
Sinon, oui il faudrait que la table des matières soit inclue
Quelque chose comme :

Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matières"
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Fields.Update

(toujours pas testé, mais je sens que ça va redonner du tonus à Guy)

--

A+

Geo
Le #890233
Bonjour @pollo


Bonsoir à tous,
Pour Geo et Anmapie, testé, Ok !
Geo, je n'avais pas vu ton message de 22h02 à 22h07 désolé


Les messages n'arrivent pas instanément, tu ne risquais donc pas le
voir.

mais en cherchant pendant une heure,


Je faisais la même chose :-)
en naviguant entre l'explorateur et l'aide, qu'il ne faut jamais
négliger, Guy ne le dira jamais assez.

Bonne nuit à tous.

Le #890231
Bonsoir à tous,
Bonsoir Geo,
voui, voui la réponse était dans l'aide, ... mais dans le deuxième exemple, trop loin dans pour une lecture en verticale impatiente,
il faut pas que j'oublie cette nouvelle leçon.

Bonne nuit à tous,
Merci d'avoir lu jusque là.


"Geo"
Bonjour @pollo


Bonsoir à tous,
Pour Geo et Anmapie, testé, Ok !
Geo, je n'avais pas vu ton message de 22h02 à 22h07 désolé


Les messages n'arrivent pas instanément, tu ne risquais donc pas le
voir.

mais en cherchant pendant une heure,


Je faisais la même chose :-)
en naviguant entre l'explorateur et l'aide, qu'il ne faut jamais
négliger, Guy ne le dira jamais assez.

Bonne nuit à tous.




Anmapie
Le #893834
Bonjour Geo,

J'ai le dernier code que tu m'as suggéré mais
malheureusement, la table des matières ne se met toujours
pas à jour si j'ajoute seulement des éléments. Vraiment
je ne sais plus quel alternative utiliser.

Merci à tous
-----Message d'origine-----
Bonjour anmapie


Bonjour Geo,

J'ai essayé le code, mais ça ne fonctionne pas car le
document est protégé. Selon ce que tu me dis concernant
mon signet au début de la table des matières, est-ce que
je devrais inclure la table des matières dans le signet?


Ca marcherait avec une mise à jour de champ mais pas
avec update.

La logique m'échappe.
Sinon, oui il faudrait que la table des matières soit
inclue

Quelque chose comme :

Selection.GoTo What:=wdGoToBookmark,
Name:="Table_des_matières"
Selection.MoveRight Unit:=wdWord, Count:=1,
Extend:=wdExtend

Selection.Fields.Update

(toujours pas testé, mais je sens que ça va redonner du
tonus à Guy)


--

A+






.




Publicité
Poster une réponse
Anonyme