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