If I read you right, all the decisions are manual ones - someone (you) must
decide what to update and when.
If the dates simply appear as text in (as far as any automated process is
concerned) random positions then, essentially, whatever you do is just a
glorified Find and Replace operation and, without more knowledge of your
reports, bookmarks are as good as any other method for identifying them.
As for templates, they serve many purposes. When new documents are created
from them, they serve, loosely, as bolierplate text - that may be useful to
you but is not relevant to the incrementing issue. Templates also serve as
containers for macros and it is this function of them that is currently of
interest. To use a macro in a template it is necessary only for the template
to be loaded, not for it to be attached to the document; whether or not a
document 'fits' a template is not relevant in this context. Reading between
the lines you are doing this yourself so if you have an appropriate template
available to you (in your StartUp folder perhaps) it should be sufficient -
and also prevent other people accidentally running your macro(s) when they
shouldn't.
If each of your years (just the years) for incrementing is bookmarked with a
name beginning "IncrementYear" then this rough'n'ready macro should
increment them for you ...
Sub Increment()
Const Ident = "IncrementYear"
Dim x As Long
Dim B As Word.Bookmark
Dim R As Word.Range
Dim BName As String
Dim YText As String
For x = ActiveDocument.Bookmarks.Count To 1 Step -1
Set B = ActiveDocument.Bookmarks(x)
If Left(B.Name, Len(Ident)) = Ident Then
If IsNumeric(B.Range) Then
Set R = B.Range.Duplicate
BName = B.Name
YText = Val(R.Text) + 1
If Len(YText) < Len(R.Text) Then
YText = Right(String(Len(R.Text), "0") & YText, Len(R.Text))
End If
R.Text = YText
ActiveDocument.Bookmarks.Add BName, R
End If
End If
Next
End Sub