View Single Post
 
Old 02-11-2022, 11:51 AM
cc85 cc85 is offline Windows 10 Office 2013
Novice
 
Join Date: Feb 2022
Posts: 3
cc85 is on a distinguished road
Default Insert field in formula with VBA

Hello,

I am a trainer and in my exercises, I have dates.
Instead of changing the dates manually every year, I have automated them by :
1 - Creating an advanced property "Year" that I change every year (File/Information/Properties/Advanced properties/Customization)
2 - In the body text, at each date :
- Insert/QuickPart/Field/ok
- It indicates me "! unexpected end of formula".
- Right click to "Toggle field codes" : {.=..* MERGEFORMAT }
- I put myself after = then Insert/QuickPart/Field/PropertyDoc/Year : {.=.2021.\* MERGEFORMAT }
- I put myself after 2021 and I add +1, +2 or -1
- Right click and "update fields" recalculates the date.
This gives me { { DOCPROPERTY Year \* MERGEFORMAT } + 1 \* MERGEFORMAT }
3 - Each year I change the date in properties, I recalculate => it's ok

Instead of doing each time the manipulation by hand, I tried a VBA macro :

Code:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="= ", PreserveFormatting:=Tru
This inserts the calculation field
Code:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="DOCPROPERTY  Annee ", PreserveFormatting:=True
Which inserts the Year property

But how do I combine the two?

There is a field type wdFieldDocProperty but I don't know how to use it.

Thank you for your solution...
Reply With Quote