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

Mise à jour champ FILENAME

4 réponses
Avatar
Jac
Bonjour à tous,

j'ai inséré {FILENAME \* MERGEFORMAT} dans le corps du document,
dans le premier entête et dans le pied de page.

A l'ouverture du document les champs ne sont pas mis à jour.
Pour que la mise à jour soit automatique, faut-il une macro ou
existe-t-il une option à cocher ?

J'ai n'ai rien trouvé à ce sujet ailleurs que dans les options d'impression
(Mettre à jour les champs). Mais ce qui est renvoyé, après un aperçu,
par {FILENAME \* MERGEFORMAT} n'est pas identique dans
entête et pied de page et dans le corps du document.
Mettrait t-il à jour uniquement ce qu'il veut ?

Si je sélectionne tout le document puis F9, seul les éléments du corps du
document sont mis à jour, pas les en^tête et pieds de page !!!

Donc, y a-t-il une autre solution que CTRL A puis F9 puis aperçu avant
impression puis retour au document ?

Merci d'avance à qui me mettra sur la voie.

Jac

4 réponses

Avatar
AB
Bonjour,
Essaie ça :
Sub Mise_à_Jour_Champs()
' MAJ des champs de tout le document y compris les entêtes et pdp
Selection.WholeStory
Selection.Fields.Update
For i = 1 To ActiveDocument.Sections.Count
With ActiveDocument.Sections(i).Headers
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.Fields.Update
End With
With ActiveDocument.Sections(i).Footers
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Selection.Fields.Update
End With
Next i
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.HomeKey Unit:=wdStory
End Sub

AB

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

Bonjour à tous,

j'ai inséré {FILENAME * MERGEFORMAT} dans le corps du document,
dans le premier entête et dans le pied de page.

A l'ouverture du document les champs ne sont pas mis à jour.
Pour que la mise à jour soit automatique, faut-il une macro ou
existe-t-il une option à cocher ?

J'ai n'ai rien trouvé à ce sujet ailleurs que dans les options
d'impression
(Mettre à jour les champs). Mais ce qui est renvoyé, après un aperçu,
par {FILENAME * MERGEFORMAT} n'est pas identique dans
entête et pied de page et dans le corps du document.
Mettrait t-il à jour uniquement ce qu'il veut ?

Si je sélectionne tout le document puis F9, seul les éléments du corps du
document sont mis à jour, pas les en^tête et pieds de page !!!

Donc, y a-t-il une autre solution que CTRL A puis F9 puis aperçu avant
impression puis retour au document ?

Merci d'avance à qui me mettra sur la voie.

Jac





Avatar
Jac
Bonjour Ab,

je vais tester un peu plus tard, mais je pense que ça répond bien à mon
problème.

Et comme parfois une solution appelle un problème, cette macro, il me la
faut pour l'ouverture d'une vingtaine de documents. Problème : si je la mets
dans chaque document, bonjour les mises à jour... Si je la mets dans
normal.dot, quand un autre utilisateur voudra ouvrir un des documents via le
réseau, il n'aura pas droit à la macro... car je ne peux pas imposer mes
préférences pour les dossiers par défaut ni personnaliser le normal.dot des
utilisateurs potentiels.

En résumé, il faut que l'ouverture de chacun de ces des fichiers, par un
quelconque utilisateur, déclenche la macro de mise à jour des champs. Et il
faut que la macro soit présente dans le même répertoire (ou un
sous-répertoire) que les fichiers à traiter. Je saurais faire dans XL, mais
dans Word, ce n'est pas toujours (facilement) transposable...

Jac


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

Bonjour,
Essaie ça :
Sub Mise_à_Jour_Champs()
' MAJ des champs de tout le document y compris les entêtes et pdp
Selection.WholeStory
Selection.Fields.Update
For i = 1 To ActiveDocument.Sections.Count
With ActiveDocument.Sections(i).Headers
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.Fields.Update
End With
With ActiveDocument.Sections(i).Footers
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Selection.Fields.Update
End With
Next i
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.HomeKey Unit:=wdStory
End Sub

AB

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

Bonjour à tous,

j'ai inséré {FILENAME * MERGEFORMAT} dans le corps du document,
dans le premier entête et dans le pied de page.

A l'ouverture du document les champs ne sont pas mis à jour.
Pour que la mise à jour soit automatique, faut-il une macro ou
existe-t-il une option à cocher ?

J'ai n'ai rien trouvé à ce sujet ailleurs que dans les options
d'impression
(Mettre à jour les champs). Mais ce qui est renvoyé, après un aperçu,
par {FILENAME * MERGEFORMAT} n'est pas identique dans
entête et pied de page et dans le corps du document.
Mettrait t-il à jour uniquement ce qu'il veut ?

Si je sélectionne tout le document puis F9, seul les éléments du corps
du document sont mis à jour, pas les entête et pieds de page !!!

Donc, y a-t-il une autre solution que CTRL A puis F9 puis aperçu avant
impression puis retour au document ?

Merci d'avance à qui me mettra sur la voie.

Jac




Avatar
Geo

Bonjour Ab,

je vais tester un peu plus tard, mais je pense que ça répond bien à mon problème.

Et comme parfois une solution appelle un problème, cette macro, il me la faut pour
l'ouverture d'une vingtaine de documents. Problème : si je la mets dans chaque
document, bonjour les mises à jour... Si je la mets dans normal.dot, quand un autre
utilisateur voudra ouvrir un des documents via le réseau, il n'aura pas droit à la
macro... car je ne peux pas imposer mes préférences pour les dossiers par défaut ni
personnaliser le normal.dot des utilisateurs potentiels.

En résumé, il faut que l'ouverture de chacun de ces des fichiers, par un quelconque
utilisateur, déclenche la macro de mise à jour des champs. Et il faut que la macro soit
présente dans le même répertoire (ou un sous-répertoire) que les fichiers à traiter. Je
saurais faire dans XL, mais dans Word, ce n'est pas toujours (facilement)
transposable...


Il y a pas mal de possibilités mais il faut voir si elles peuvent vous
servir :
Mettre la macro dans un modèle dans le répertoire de démarrage, mais
effectivement les utilisateurs peuvent le changer.

La même chose dans
C:Program FilesMicrosoft OfficeOffice11STARTUP
Ca devrait le faire.

On peut aussi ajouter directement le code par macro dans les documents,
surtout s'ils sont dans le même dossier.

--
A+

Avatar
Jac
Merci Geo,

On peut aussi ajouter directement le code par macro dans les documents,
surtout s'ils sont dans le même dossier.


Aurais-tu un exemple de code pour ceci ?

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


Bonjour Ab,

je vais tester un peu plus tard, mais je pense que ça répond bien à mon
problème.

Et comme parfois une solution appelle un problème, cette macro, il me la
faut pour l'ouverture d'une vingtaine de documents. Problème : si je la
mets dans chaque document, bonjour les mises à jour... Si je la mets dans
normal.dot, quand un autre utilisateur voudra ouvrir un des documents via
le réseau, il n'aura pas droit à la macro... car je ne peux pas imposer
mes préférences pour les dossiers par défaut ni personnaliser le
normal.dot des utilisateurs potentiels.

En résumé, il faut que l'ouverture de chacun de ces des fichiers, par un
quelconque utilisateur, déclenche la macro de mise à jour des champs. Et
il faut que la macro soit présente dans le même répertoire (ou un
sous-répertoire) que les fichiers à traiter. Je saurais faire dans XL,
mais dans Word, ce n'est pas toujours (facilement) transposable...


Il y a pas mal de possibilités mais il faut voir si elles peuvent vous
servir :
Mettre la macro dans un modèle dans le répertoire de démarrage, mais
effectivement les utilisateurs peuvent le changer.

La même chose dans
C:Program FilesMicrosoft OfficeOffice11STARTUP
Ca devrait le faire.

On peut aussi ajouter directement le code par macro dans les documents,
surtout s'ils sont dans le même dossier.

--
A+