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

mise à jour des champs

6 réponses
Avatar
PAN GOT
Bonsoir à tous,
j'ai des gros fichiers .doc avec de nombreux renvois vers des signets ou des
éléments numérotés.
Je voulais faire une macro qui met à jour tous ces champs (malgrès l'option
cochée de mise à jour avant impression).
J'ai donc récupéré dans l'aide quelques lignes que j'ai complété mais j'ai
encore quelques soucis.
1- la macro se termine au premier saut de section (page de garde différente
des autres)
2-si je place le curseur sur la deuxième page, la macro tourne en boucle sur
le sommaire qui se trouve quelque pages suivantes.
3-après, elle a très longue pour se terminer si je me place après ce
sommaire et je ne sais pas si il y a moyen de l'optimiser.

Voici ces quelques lignes si quelqu'un avait la bonté de m'indiquer, soit la
façon de contourner les 2 premiers problèmes, soit de définir la position du
curseur comme départ de la sélection, soit de saisir la page de départ avec
un Msgbox.
D'avance, merci.

Sub MaJ_Champs()



Dim MyRange, aWord, MonFichier



Set MonFichier = ActiveDocument.Range(Start:=0, End:=Selection.End)



For Each aWord In MonFichier.Words

With Selection

Set MyRange = .GoToNext(What:=wdGoToField)

.MoveRight Unit:=wdWord, Extend:=wdExtend

.Fields(1).Select

'mise à jour des champs

.Fields.Update

End With

Next aWord



MsgBox ("Macro terminée")

End Sub

6 réponses

Avatar
michdenis
Bonjour,

As-tu essayé quelque chose comme ceci :

'--------------------------------------------
Sub test()
Dim Pan As Pane, Pag As Page
Dim Br As Break, F As Field

For Each Pan In ActiveDocument.ActiveWindow.Panes
For Each Pag In Pan.Pages
For Each Br In Pag.Breaks
For Each F In Br.Range.Fields
'Ton code que tu veux exécuter
'sur chacun des champ. Tu es dans
'une boucle où F représente un champ.
F.Update
Next
Next
Next
Next

End Sub
'--------------------------------------------



"PAN GOT" a écrit dans le message de groupe de discussion
: un$
Bonsoir à tous,
j'ai des gros fichiers .doc avec de nombreux renvois vers des signets ou des
éléments numérotés.
Je voulais faire une macro qui met à jour tous ces champs (malgrès l'option
cochée de mise à jour avant impression).
J'ai donc récupéré dans l'aide quelques lignes que j'ai complété mais j'ai
encore quelques soucis.
1- la macro se termine au premier saut de section (page de garde différente
des autres)
2-si je place le curseur sur la deuxième page, la macro tourne en boucle sur
le sommaire qui se trouve quelque pages suivantes.
3-après, elle a très longue pour se terminer si je me place après ce
sommaire et je ne sais pas si il y a moyen de l'optimiser.

Voici ces quelques lignes si quelqu'un avait la bonté de m'indiquer, soit la
façon de contourner les 2 premiers problèmes, soit de définir la position du
curseur comme départ de la sélection, soit de saisir la page de départ avec
un Msgbox.
D'avance, merci.

Sub MaJ_Champs()



Dim MyRange, aWord, MonFichier



Set MonFichier = ActiveDocument.Range(Start:=0, End:=Selection.End)



For Each aWord In MonFichier.Words

With Selection

Set MyRange = .GoToNext(What:=wdGoToField)

.MoveRight Unit:=wdWord, Extend:=wdExtend

.Fields(1).Select

'mise à jour des champs

.Fields.Update

End With

Next aWord



MsgBox ("Macro terminée")

End Sub
Avatar
Geo
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



[...]
Voici ces quelques lignes si quelqu'un avait la bonté de m'indiquer, soit la façon de
contourner les 2 premiers problèmes, soit de définir la position du curseur comme
départ de la sélection, soit de saisir la page de départ avec un Msgbox.



Pour saisir des données, utiliser InputBox, il y a un exemple dans
l'aide.
Pour mettre à jour tous les champs, l'enregistreur de macros est votre
ami.
La manipulation : Tout sélectionner, mettre tout à jour (F9)

Donne
Selection.WholeStory
Selection.Fields.Update

--
A+
Avatar
PAN GOT
Bonsoir Geo
Désolé pour le retard dans ma reponse, j'ai eu un contre temps.
J'ai utilisé tes deux lignes de codes. C'est effectivement trés court comme
code et trés rapide en exe.
Par contre, sur le sommaire, j'ai constaté que les références des pages
étaient mises à jour mais pas les libéllés des chapitres.
J'ai trouvé la fonction 'Selection.Information' qui va, je pense, bien
m'aider pour localiser se sommaire et le mettre à jour.
Merci. @+

"Geo" a écrit dans le message de news:

Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]



[...]
Voici ces quelques lignes si quelqu'un avait la bonté de m'indiquer, soit
la façon de contourner les 2 premiers problèmes, soit de définir la
position du curseur comme départ de la sélection, soit de saisir la page
de départ avec un Msgbox.



Pour saisir des données, utiliser InputBox, il y a un exemple dans l'aide.
Pour mettre à jour tous les champs, l'enregistreur de macros est votre
ami.
La manipulation : Tout sélectionner, mettre tout à jour (F9)

Donne
Selection.WholeStory
Selection.Fields.Update

--
A+


Avatar
Geo
Bonjour

Par contre, sur le sommaire, j'ai constaté que les références des pages étaient mises à
jour mais pas les libéllés des chapitres.



Essayez
ActiveDocument.TablesOfContents(1).Update
éventuellment suivi de
ActiveDocument.TablesOfContents(1).UpdatePageNumbers

--
A+
Avatar
PAN GOT
Bonjour,
encore toutes mes excuses pour cette reponse tardive.
çà marche sans mettre d'ailleurs la seconde ligne.
Encore merci.
Patrick

"Geo" a écrit dans le message de news:

Bonjour

Par contre, sur le sommaire, j'ai constaté que les références des pages
étaient mises à jour mais pas les libéllés des chapitres.



Essayez
ActiveDocument.TablesOfContents(1).Update
éventuellment suivi de
ActiveDocument.TablesOfContents(1).UpdatePageNumbers

--
A+


Avatar
Geo
Bonjour Patrick

encore toutes mes excuses pour cette reponse tardive.
çà marche sans mettre d'ailleurs la seconde ligne.



C'est ça qui est important.
Merci pour le retour

--
A+