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

Bonne et pertinente question !

3 réponses
Avatar
Paul Florent
Merci à AB pour son aide.

A partir de mon modèle, lors qu'un nouveau document est créé, une macro
AutoNew s'éxécute,
met les champs à jour en particulier dans le pied de page et après la mise à
jour,
je remplace les champs par leur valeur
Selection.Fields.Update
Selection.Fields.Unlink
Mais pas le champ Page.
Comme dans le pied de page, il n'est pas aisé, lors de l'enregistrement de
la macro
de ne sélectionner qu'une partie de la ligne,
j'ai pris le parti de mettre un saut le ligne pour séparer le champ page des
autre,
je sélectionne la ligne des champs à mettre à jour et à remplacer
et une fois cette opération réalisée, je remplace le saut de ligne par une
tabulation
qui replace le champ page sur la même ligne que le reste.

Si vous avez une meilleure solution, c'est avec plaisir que je la recevrais,
je ne demande qu'à apprendre.

Merci par avance pour vos suggestions
Paul

3 réponses

Avatar
Geo
Bonjour Paul


[...]

Si vous avez une meilleure solution,


Une meilleure, je sais pas, mais une autre : sans doute.
merci en tous cas d'avoir satisfait notre curiosité.
Juste un truc : si tu étais resté dans la même conversation ce serait plus
simple pour suivre.

On peut utiliser en vba le contenu (code) d'un champ (objet field)
donc tu aurais pu balayer tes champs et sauter ceux que tu veux.
Si c'est pour un champ date du genre date de création du document, il y a
encore plus simple.

Bonne fin de semaine.

Avatar
Anacoluthe
Bonjour !

'Paul Florent' nous a écrit ...
je sélectionne la ligne des champs à mettre à jour et à remplacer
et une fois cette opération réalisée, je remplace le saut de ligne par une
tabulation
qui replace le champ page sur la même ligne que le reste.


Ça c'est sioux :-) !

Voici une petite macro qui va mettre à jour tous les champs
(y compris dans les en-têtes et pieds de pages) et les déchamper
/sauf/ s'il s'agit d'un champ {PAGE} :

Sub MetAJourEtDechampeTousLesChampsSaufPage()
Dim oRange As Range
Dim oChamp As Field
For Each oRange In ActiveDocument.StoryRanges
For Each oChamp In oRange.Fields
oChamp.Update
If oChamp.Type <> wdFieldPage Then oChamp.Unlink
Next oChamp
Next oRange
End Sub

Comme a dit Geo si tout ça c'était pour figer un champ date
on peut faire beaucoup beaucoup plus simple et même sans macro
avec un simple champ CREATEDATE dans le modèle...

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
- Jacques ROUXEL

Avatar
Geo
Bonjour Anacoluthe


Ça c'est sioux :-) !


Il nous a bluffé quand même :-)

--

A+