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

Mise à jour table des matières par macro

25 réponses
Avatar
Anmapie
Bonjour =E0 tous,

J'ai un document Word 2000 qui contient des sections,=20
certaines sont verrouill=E9es et d'autres ne le sont pas=20
comme celle qui contient la table des mati=E8res.
J'ai cr=E9er un signet nomm=E9 "Table_des_mati=E8res" au d=E9but=20
de la table des mati=E8res.
J'ai enregistr=E9 une macro qui atteint le signet, qui met=20
ensuite la table des mati=E8res =E0 jour.

Mon probl=E8me: Lorsque je fais des ajouts sans faire aucune=20
suppression, la table des mati=E8res ne se met pas =E0 jour. =20
Par contre si je supprime des =E9l=E9ments qui figuraient dans=20
la table elle se met =E0 jour.

Que faut-il que j'ajoute =E0 ma macro pour qu'elle puisse=20
mettre =E0 jour la table des mati=E8res lorsque j'ajoute=20
seulement des =E9l=E9ments?

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

Merci beaucoup

10 réponses

1 2 3
Avatar
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


Avatar
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



.




Avatar
Geo
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+
Avatar
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" a écrit dans le message de news:190de01c41c0a$bff176a0$
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



.




Avatar
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?

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+




.



Avatar
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é)


Avatar
Geo
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+

Avatar
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.

Avatar
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" a écrit dans le message de news:
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.




Avatar
Anmapie
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+






.




1 2 3