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)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <no-spam-gret.angot@wanadoo.fr> a écrit dans le message de groupe de discussion
: un$kdNc0KHA.3676@TK2MSFTNGP05.phx.gbl...
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)
'-------------------------------------------- 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
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+
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
[ 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+
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+
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" <Geo@sans.pub> a écrit dans le message de news:
mn.0cd47da43c899c4f.41568@sans.pub...
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
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+
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+
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