Hi,

I have a template with 2 formfields containing the following
bookmarks:

- Name
- Place

The formfields are filled using a userform:

ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)

Then I want to insert a 'new page section' and in the new section I
want to insert the same template again, with thus the same bookmarks.
To prevent multiple bookmarks with the same name, I delete all
bookmarks before I make the new page section using:

ActiveDocument.Bookmarks("Name").Delete
ActiveDocument.Bookmarks("Place").Delete

I then insert the template on the second page.

What I want is to use the userform again to now fill the bookmarks on
the second page. However, if I use

ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)

again (assuming the Name bookmark is now on the second page due to the
template and having deleted all other bookmarks), the formfields on
the 1st page are filled again in stead of the second page.

It looks like the bookmark from the first page is not entirely
deleted! If I however unprotect the page and look in the property of
the formfield of the first page, there is no bookmark!

Can someone help me please?

Thanks, Mike

Re: Deleting bookmarks doesn't work by Greg

Greg
Tue Feb 13 09:52:36 CST 2007

On Feb 13, 9:09 am, "Mike" <Mike_Gato...@yahoo.com> wrote:
> Hi,
>
> I have a template with 2 formfields containing the following
> bookmarks:
>
> - Name
> - Place
>
> The formfields are filled using a userform:
>
> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> Then I want to insert a 'new page section' and in the new section I
> want to insert the same template again, with thus the same bookmarks.
> To prevent multiple bookmarks with the same name, I delete all
> bookmarks before I make the new page section using:
>
> ActiveDocument.Bookmarks("Name").Delete
> ActiveDocument.Bookmarks("Place").Delete
>
> I then insert the template on the second page.
>
> What I want is to use the userform again to now fill the bookmarks on
> the second page. However, if I use
>
> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> again (assuming the Name bookmark is now on the second page due to the
> template and having deleted all other bookmarks), the formfields on
> the 1st page are filled again in stead of the second page.
>
> It looks like the bookmark from the first page is not entirely
> deleted! If I however unprotect the page and look in the property of
> the formfield of the first page, there is no bookmark!
>
> Can someone help me please?
>
> Thanks, Mike

Mike,

I don't have a solution for you, but I can show that deleting the
bookmark associated with a formfield does "not" change the formfield
name. In a new document insert on text formfield and then run the
following code:

Sub Scratchmacro()
With ActiveDocument
.Bookmarks("Text1").Delete
MsgBox .FormFields(1).Name
.FormFields("Text1").Result = "Some text"
End With
End Sub







Re: Deleting bookmarks doesn't work by Mike

Mike
Wed Feb 14 04:07:49 CST 2007

On 13 feb, 16:52, "Greg Maxey" <gma...@gmail.com> wrote:
> On Feb 13, 9:09 am, "Mike" <Mike_Gato...@yahoo.com> wrote:
>
>
>
>
>
> > Hi,
>
> > I have a template with 2 formfields containing the following
> > bookmarks:
>
> > - Name
> > - Place
>
> > The formfields are filled using a userform:
>
> > ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> > ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> > Then I want to insert a 'new page section' and in the new section I
> > want to insert the same template again, with thus the same bookmarks.
> > To prevent multiple bookmarks with the same name, I delete all
> > bookmarks before I make the new page section using:
>
> > ActiveDocument.Bookmarks("Name").Delete
> > ActiveDocument.Bookmarks("Place").Delete
>
> > I then insert the template on the second page.
>
> > What I want is to use the userform again to now fill the bookmarks on
> > the second page. However, if I use
>
> > ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> > ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> > again (assuming the Name bookmark is now on the second page due to the
> > template and having deleted all other bookmarks), the formfields on
> > the 1st page are filled again in stead of the second page.
>
> > It looks like the bookmark from the first page is not entirely
> > deleted! If I however unprotect the page and look in the property of
> > the formfield of the first page, there is no bookmark!
>
> > Can someone help me please?
>
> > Thanks, Mike
>
> Mike,
>
> I don't have a solution for you, but I can show that deleting the
> bookmark associated with a formfield does "not" change the formfield
> name. In a new document insert on text formfield and then run the
> following code:
>
> Sub Scratchmacro()
> With ActiveDocument
> .Bookmarks("Text1").Delete
> MsgBox .FormFields(1).Name
> .FormFields("Text1").Result = "Some text"
> End With
> End Sub- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -

Thanks, but thats not what I'm looking for. Also tried to change the
name of the field, no luck....

Anyone else?

Mike


Re: Deleting bookmarks doesn't work by Jean-Guy

Jean-Guy
Wed Feb 14 10:01:50 CST 2007

Mike was telling us:
Mike nous racontait que :

> On 13 feb, 16:52, "Greg Maxey" <gma...@gmail.com> wrote:
>> On Feb 13, 9:09 am, "Mike" <Mike_Gato...@yahoo.com> wrote:
>>
>>
>>
>>
>>
>>> Hi,
>>
>>> I have a template with 2 formfields containing the following
>>> bookmarks:
>>
>>> - Name
>>> - Place
>>
>>> The formfields are filled using a userform:
>>
>>> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
>>> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>>
>>> Then I want to insert a 'new page section' and in the new section I
>>> want to insert the same template again, with thus the same
>>> bookmarks. To prevent multiple bookmarks with the same name, I
>>> delete all bookmarks before I make the new page section using:
>>
>>> ActiveDocument.Bookmarks("Name").Delete
>>> ActiveDocument.Bookmarks("Place").Delete
>>
>>> I then insert the template on the second page.
>>
>>> What I want is to use the userform again to now fill the bookmarks
>>> on the second page. However, if I use
>>
>>> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
>>> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>>
>>> again (assuming the Name bookmark is now on the second page due to
>>> the template and having deleted all other bookmarks), the
>>> formfields on the 1st page are filled again in stead of the second
>>> page.
>>
>>> It looks like the bookmark from the first page is not entirely
>>> deleted! If I however unprotect the page and look in the property of
>>> the formfield of the first page, there is no bookmark!
>>
>>> Can someone help me please?
>>
>>> Thanks, Mike
>>
>> Mike,
>>
>> I don't have a solution for you, but I can show that deleting the
>> bookmark associated with a formfield does "not" change the formfield
>> name. In a new document insert on text formfield and then run the
>> following code:
>>
>> Sub Scratchmacro()
>> With ActiveDocument
>> .Bookmarks("Text1").Delete
>> MsgBox .FormFields(1).Name
>> .FormFields("Text1").Result = "Some text"
>> End With
>> End Sub- Tekst uit oorspronkelijk bericht niet weergeven -
>>
>> - Tekst uit oorspronkelijk bericht weergeven -
>
> Thanks, but thats not what I'm looking for. Also tried to change the
> name of the field, no luck....
>
> Anyone else?
>
> Mike

Instead of renaming the formfields already in place, you should rename the
one you just inserted in the document before you fill them out with text.
The reason being that if you insert formfields that have the same name as
exiting formfields, Word will internally choke and if you try to run simple
code like:

myFormField.Name = "Test" & i

Word will return an error on those fields that had conflicting names.

There is a workaround (my code below) but that removes the formfield content
and resets it to its default value. This is fine with fresh formfields that
do not have content yet, but not with existing ones.

'_______________________________________
Sub RenameFormfields()

Dim lngSecNumber As Long

If Selection.Sections.Item(1).Index = 1 Then
MsgBox "You cannot use this procedure from the first section in the
document."
Exit Sub
End If

lngSecNumber = Selection.Sections.Item(1).Index

With ActiveDocument.Sections(lngSecNumber).Range
.FormFields(1).Select
With Dialogs(wdDialogFormFieldOptions)
.Name = "Name" & lngSecNumber
.Execute
End With
.FormFields(2).Select
With Dialogs(wdDialogFormFieldOptions)
.Name = "Place" & lngSecNumber
.Execute
End With
End With
'_______________________________________

But, if you use a "clean" system, you can use something like:

myFormField.Name = "Test" & i

For that to Work, create an Autotext with the formfields, the text and the
section break and name those formfields "Name" and "Place".

Insert them in the first section and run code like:

'_______________________________________
Dim lngSecNumber As Long

lngSecNumber = Selection.Sections.Item(1).Index

With ActiveDocument.Sections(lngSecNumber).Range
.FormFields(1).Name = "Name" & lngSecNumber
.FormFields(2).Name = "Place" & lngSecNumber
End With
'_______________________________________

Every time you insert a new section, run the code to rename the formfields.
This way you will never have conflicting names.

--

Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
jmarcilREMOVE@CAPSsympatico.caTHISTOO
Word MVP site: http://www.word.mvps.org



Re: Deleting bookmarks doesn't work by Mike

Mike
Thu Feb 15 11:16:39 CST 2007

On 14 feb, 17:01, "Jean-Guy Marcil" <DontEvenTry@NoSpam> wrote:
> Mike was telling us:
> Mike nous racontait que :
>
>
>
>
>
> > On 13 feb, 16:52, "Greg Maxey" <gma...@gmail.com> wrote:
> >> On Feb 13, 9:09 am, "Mike" <Mike_Gato...@yahoo.com> wrote:
>
> >>> Hi,
>
> >>> I have a template with 2 formfields containing the following
> >>> bookmarks:
>
> >>> - Name
> >>> - Place
>
> >>> The formfields are filled using a userform:
>
> >>> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> >>> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> >>> Then I want to insert a 'new page section' and in the new section I
> >>> want to insert the same template again, with thus the same
> >>> bookmarks. To prevent multiple bookmarks with the same name, I
> >>> delete all bookmarks before I make the new page section using:
>
> >>> ActiveDocument.Bookmarks("Name").Delete
> >>> ActiveDocument.Bookmarks("Place").Delete
>
> >>> I then insert the template on the second page.
>
> >>> What I want is to use the userform again to now fill the bookmarks
> >>> on the second page. However, if I use
>
> >>> ActiveDocument.FormFields("Name").Result = Formname.Controls(Name)
> >>> ActiveDocument.FormFields("Place").Result = Formname.Controls(Place)
>
> >>> again (assuming the Name bookmark is now on the second page due to
> >>> the template and having deleted all other bookmarks), the
> >>> formfields on the 1st page are filled again in stead of the second
> >>> page.
>
> >>> It looks like the bookmark from the first page is not entirely
> >>> deleted! If I however unprotect the page and look in the property of
> >>> the formfield of the first page, there is no bookmark!
>
> >>> Can someone help me please?
>
> >>> Thanks, Mike
>
> >> Mike,
>
> >> I don't have a solution for you, but I can show that deleting the
> >> bookmark associated with a formfield does "not" change the formfield
> >> name. In a new document insert on text formfield and then run the
> >> following code:
>
> >> Sub Scratchmacro()
> >> With ActiveDocument
> >> .Bookmarks("Text1").Delete
> >> MsgBox .FormFields(1).Name
> >> .FormFields("Text1").Result = "Some text"
> >> End With
> >> End Sub- Tekst uit oorspronkelijk bericht niet weergeven -
>
> >> - Tekst uit oorspronkelijk bericht weergeven -
>
> > Thanks, but thats not what I'm looking for. Also tried to change the
> > name of the field, no luck....
>
> > Anyone else?
>
> > Mike
>
> Instead of renaming the formfields already in place, you should rename the
> one you just inserted in the document before you fill them out with text.
> The reason being that if you insert formfields that have the same name as
> exiting formfields, Word will internally choke and if you try to run simple
> code like:
>
> myFormField.Name = "Test" & i
>
> Word will return an error on those fields that had conflicting names.
>
> There is a workaround (my code below) but that removes the formfield content
> and resets it to its default value. This is fine with fresh formfields that
> do not have content yet, but not with existing ones.
>
> '_______________________________________
> Sub RenameFormfields()
>
> Dim lngSecNumber As Long
>
> If Selection.Sections.Item(1).Index = 1 Then
> MsgBox "You cannot use this procedure from the first section in the
> document."
> Exit Sub
> End If
>
> lngSecNumber = Selection.Sections.Item(1).Index
>
> With ActiveDocument.Sections(lngSecNumber).Range
> .FormFields(1).Select
> With Dialogs(wdDialogFormFieldOptions)
> .Name = "Name" & lngSecNumber
> .Execute
> End With
> .FormFields(2).Select
> With Dialogs(wdDialogFormFieldOptions)
> .Name = "Place" & lngSecNumber
> .Execute
> End With
> End With
> '_______________________________________
>
> But, if you use a "clean" system, you can use something like:
>
> myFormField.Name = "Test" & i
>
> For that to Work, create an Autotext with the formfields, the text and the
> section break and name those formfields "Name" and "Place".
>
> Insert them in the first section and run code like:
>
> '_______________________________________
> Dim lngSecNumber As Long
>
> lngSecNumber = Selection.Sections.Item(1).Index
>
> With ActiveDocument.Sections(lngSecNumber).Range
> .FormFields(1).Name = "Name" & lngSecNumber
> .FormFields(2).Name = "Place" & lngSecNumber
> End With
> '_______________________________________
>
> Every time you insert a new section, run the code to rename the formfields.
> This way you will never have conflicting names.
>
> --
>
> Salut!
> _______________________________________
> Jean-Guy Marcil - Word MVP
> jmarcilREM...@CAPSsympatico.caTHISTOO
> Word MVP site:http://www.word.mvps.org- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -

Thanks, you helped me a great deal!

Mike