Instead of using bookmarks, have the code in your user form set the values
of document variables
With ActiveDocument
.Variables("varname1").Value = somecontrolname1.Value
.Variables("varname2").Value = somecontrolname2.Value
'etc
.PrintPreview
.ClosePrintPreview
End With
then in the document, insert DOCVARIABLE fields at the locations that you
want the data to appear.
The PrintPreview/ClosePrintPreview is the lazy man's way of getting all of
the fields in the document to update so that each DOCVARIABLE field shows
the value that has been assigned to the associated variable.

Signature
Hope this helps.
Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.
Doug Robbins - Word MVP
>I have a macro that takes data from a user form, as part of a letterhead
>and
[quoted text clipped - 9 lines]
>
> John
DevalilaJohn - 23 Mar 2008 21:44 GMT
Doug,
That's spot on, thanks for the help.
> Instead of using bookmarks, have the code in your user form set the values
> of document variables
[quoted text clipped - 27 lines]
> >
> > John