Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / June 2008

Tip: Looking for answers? Try searching our database.

Renaming bookmarks when inserting file

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
bryan - 11 May 2008 16:30 GMT
I would like to be able to rename the bookmarks on a document that I am
inserting into a template new doc. The template has the abilitiy to add this
document many times and I will run sql statements to populate some of the
fields on the inserted file.

Let's say I'm inserting test1.doc which has 5 formfields, text1 - text5.
How can I rename these upon inserting the file?
That way I can maintain 1 insertable doc rather than having multiple

Thanks,
Bryan
fumei - 11 May 2008 21:57 GMT
You can not rename bookmarks.  You CAN rename formfields.

I am not quite following:  "on a document that I am inserting into a template
new doc"

You are cloning a new doc from a template and THEN inserting another document
into that new document?  Do I have that correct?  Seems a little odd, but OK.

How do you want to rename the formfields (not the bookmarks).  Note that when
you rename the formfields, the bookmarks are also created with those names.

So say you insert a file with Text1, Text2, Text3 as the formfield names.

If you select that chunk (the newly inserted file chunk), and run:

Dim oFF As FormField
Dim j As Long
j = 1
For Each oFF In Selection.FormFields
   oFF.Name = "Yadda" & j
   j = j + 1
Next

the previously named formfields(Text1, Text2, Text3) will be renamed Yadda1,
Yadda2, Yadda3.  The bookmarks will be the same names.

>I would like to be able to rename the bookmarks on a document that I am
>inserting into a template new doc. The template has the abilitiy to add this
[quoted text clipped - 7 lines]
>Thanks,
>Bryan
bryan - 12 May 2008 01:45 GMT
I appreciate the quick response. I will be able to try this mid-week.
I created a template for users in our Commercial Lines area. When they
create the new doc based on the template I pre-populate fields based upon the
client id.
A new request came with wanting the ability to attach several id cards for
each unit of a policy. When each of these get attached I will run an sql
statement to populate the attached doc form fields for that unit. Rather than
create 10-15 different files (all the same) and changing the form field name,
I was looking for a way to have only one doc and then changing the formfield
name upon adding.

Hopefully this clears up what I am trying to accomplish.
Again thanks,
Bryan

> You can not rename bookmarks.  You CAN rename formfields.
>
[quoted text clipped - 33 lines]
> >Thanks,
> >Bryan
bryan - 12 May 2008 01:57 GMT
Also,
What is meant by "when you select that chunk"?
When and how do I do this? I am fairly new to this aspect.
Here is my insert of file:

Dim myDoc As Document
Dim docrange As Range

Set myDoc = ActiveDocument
With myDoc
    .Unprotect
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertBreak wdSectionBreakNextPage
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertFile "W:\Commercial\WC ImageRight Templates\Document
Attachments\ID Letter.doc"
    .Protect wdAllowOnlyFormFields, NoReset
End With

Thanks again,
Bryan

> You can not rename bookmarks.  You CAN rename formfields.
>
[quoted text clipped - 33 lines]
> >Thanks,
> >Bryan
Doug Robbins - Word MVP - 12 May 2008 02:03 GMT
chunk - the text inserted into the document by the action of inserting the
file.

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

> Also,
> What is meant by "when you select that chunk"?
[quoted text clipped - 65 lines]
>> >Thanks,
>> >Bryan
Jean-Guy Marcil - 13 May 2008 18:04 GMT
> You can not rename bookmarks.  You CAN rename formfields.

What do you mean by that?
The following code does rename a bookmark...

Dim rngBook As Range
Dim strNewBookName As String

Const strBookName As String = "Test_1"

strNewBookName = "Book_1"

With ActiveDocument.Bookmarks
   Set rngBook = .Item(strBookName).Range
   .Item(strBookName).Delete
   .Add strNewBookName, rngBook
End With

Maybe you meant that once you rename a bookmark, all REF fields and other
fields that refer to the renamed bookmark will now display errors...
bryan - 29 May 2008 16:12 GMT
This is not working. It renames my checkbox but not the form fields of the
file I am adding. The file I am adding has "Text1" through "Text12" which I
want to remane so I can update.
"t" is the unit number I will pass in.
This code is renaming "Check1" to "Unit741"
Here is my code in adding the file and trying the rename:
Sub chk1()
'
' chk1 Macro
' Macro created 5/28/2008 by bjsorens
'
If ActiveDocument.FormFields("Check1").CheckBox.Value = True Then
Dim myDoc As Document
Dim docrange As Range
Dim oFF As FormField
Dim j As Long
t = 74
j = 1

Set myDoc = ActiveDocument
With myDoc
    .Unprotect
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertBreak wdPageBreak
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertFile "U:\\MN Vehicle Insurance Identification Card.doc"
      For Each oFF In Selection.FormFields
        oFF.Name = "Unit" & t & j
       j = j + 1
       Next
     .Protect wdAllowOnlyFormFields, NoReset
End With
End If
End Sub

What I want is only "Text1" through "Text12" of the added document to
change, nothing on the main form.

Thanks,
Bryan

> > You can not rename bookmarks.  You CAN rename formfields.
>
[quoted text clipped - 16 lines]
> Maybe you meant that once you rename a bookmark, all REF fields and other
> fields that refer to the renamed bookmark will now display errors...
bryan - 30 May 2008 13:26 GMT
fumei indicated 'if you select that chunk (the newly inserted file chunk) and
then run this code it would work. I must be missing the selection of this
inserted file.
How do I select that?

Thanks,
Bryan

> This is not working. It renames my checkbox but not the form fields of the
> file I am adding. The file I am adding has "Text1" through "Text12" which I
[quoted text clipped - 59 lines]
> > Maybe you meant that once you rename a bookmark, all REF fields and other
> > fields that refer to the renamed bookmark will now display errors...
Helmut Weber - 30 May 2008 13:51 GMT
Hi Bryan,

like that:

Sub Test400A()
Selection.Bookmarks.Add "Test"
Selection.InsertFile "C:\Test\Word1\Experts.doc"
ActiveDocument.Bookmarks("Test").End = Selection.start
ActiveDocument.Bookmarks("Test").Select
End Sub

--

Greetings from Bavaria, Germany

Helmut Weber, MVP WordVBA

Vista Small Business, Office XP
bryan - 30 May 2008 14:49 GMT
how do i use this code into my adding of the file.
Set myDoc = ActiveDocument
With myDoc
    .Unprotect
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertBreak wdPageBreak
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertFile "U:\\MN Vehicle Insurance Identification Card.doc"
     .Protect wdAllowOnlyFormFields, NoReset
End With

Thanks,
bryan

> Hi Bryan,
>
[quoted text clipped - 14 lines]
>
> Vista Small Business, Office XP
bryan - 30 May 2008 16:32 GMT
I'm learning working with VBA and Word as I'm going along.
All this information is great but, it's hard for me to figure how to use
this code with my code.
I'm inserting a file and would like to rename the formfields of the inserted
file.
Her is my insertion:
If ActiveDocument.FormFields("Check1").CheckBox.Value = True Then
Dim myDoc As Document
Dim docrange As Range

Set myDoc = ActiveDocument
With myDoc
    .Unprotect
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertBreak wdPageBreak
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertFile "U:\MN Vehicle Insurance Identification Card.doc"
     .Protect wdAllowOnlyFormFields, NoReset
End With

How can I select this added file and rename the formfields?
Previously I had used code from fumei to rename and I had that right after
inserting the file.
What that did was rename 'Check1'.
I only want to rename the formfields of the added file.

Thanks,
Bryan

> Hi Bryan,
>
[quoted text clipped - 14 lines]
>
> Vista Small Business, Office XP
bryan - 02 Jun 2008 16:27 GMT
Can somebody help me with this?
I've tried using fumei's code which renames "Check1", not the formfileds
from adding a file.
I've used Helmut's code to select, but it bombs on the
selection.insert.........

When I insert a file, I want to rename the form fields of the inserted file.
How?
Help!!!
Bryan

> I'm learning working with VBA and Word as I'm going along.
> All this information is great but, it's hard for me to figure how to use
[quoted text clipped - 45 lines]
> >
> > Vista Small Business, Office XP
Doug Robbins - Word MVP - 03 Jun 2008 04:57 GMT
The following code will rename each of the formfields in that last Section
of a document with a name of the form Sectionnm where n is the number of the
Section and m is the number of the formfield in that Section:

Dim i As Long
With ActiveDocument.Sections.Last.Range
   For i = 1 To .FormFields.Count
       .FormFields(i).Name = "Section" & ActiveDocument.Sections.Count & i
   Next i
End With

Each formfield must already have a name for this to work and it assumes that
you would be inserting the file into a new section at the end of the
document.
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

> Can somebody help me with this?
> I've tried using fumei's code which renames "Check1", not the formfileds
[quoted text clipped - 60 lines]
>> >
>> > Vista Small Business, Office XP
bryan - 03 Jun 2008 13:38 GMT
Hi Doug,
Unfortunately this does not work and it may be my fault in my explanation.
I inserted this code right after I insert the file. The file I am inserting
is 2 pages.
Results: I added the file and my formfields were still Text1 through Text10.
When I added this file twice, the 2nd formfields were all blank.

Also,
Since users can add this file multiple times as they could be requesting id
cards for many vehicles, how can I get the section number?
Since I will be updating the formfields with specific information of the
vehicle for each id card, I will need to know which section I am dealing
with. I am also assuming that the 'm' number starts at 1 for each file added.

Here is my code in adding the file along with trying to rename right after:
If ActiveDocument.FormFields("IDCard").Result <> "" Then
Dim myDoc As Document
Dim docrange As Range
Dim array2()
Dim strInfo
 i = 0
 k = 0
 j = 0
 str1 = ActiveDocument.FormFields("IDCard").Result
 array1 = Split(str1, ",")
  For Each Item In array1
   If IsNumeric(Item) Then
    ReDim Preserve array2(i)
    array2(i) = Item
    i = i + 1
   Else
    pos = InStr(1, Item, "-")
    startnum = Mid(Item, 1, pos - 1)
    endnum = Mid(Item, pos + 1, Len(Item))
    num = startnum
     
      For j = (startnum) To (endnum)
       ReDim Preserve array2(i)
       array2(i) = num
       num = num + 1
       
       i = i + 1
      Next
     
    End If
   
  Next

For Each Item In array2
strInfo = getinfo(Item)
array3 = Split(strInfo, ",")
strrkst = array3(0)
If strrkst = "22" Then
 strIDCard = "U:\CL Templates\P1004707\MN Vehicle Insurance Identification
Card.doc"
Else
 strIDCard = "U:\CL Templates\P1004707\Non MN Vehicle Insurance
Identification Card.doc"
End If
Set myDoc = ActiveDocument
With myDoc
    .Unprotect
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertBreak wdPageBreak
     Set docrange = .Range
     docrange.Collapse wdCollapseEnd
     docrange.InsertFile strIDCard
     '
Dim z As Long
With ActiveDocument.Sections.Last.Range
   For z = 1 To .FormFields.Count
       .FormFields(i).Name = "Section" & ActiveDocument.Sections.Count & z
   Next z
End With
     .Protect wdAllowOnlyFormFields, NoReset
End With



strvyr = array3(1)
strmake = array3(2)
strmodl = array3(3)
strvin = array3(4)
'ActiveDocument.FormFields("text9").Result = strvyr & " " & strmake & " " &
strmodl
'ActiveDocument.FormFields("text10").Result = Trim(strvin)


Dim oField As Field
 Dim oStory As Range
 For Each oStory In ActiveDocument.StoryRanges
 
   Do
   For Each oField In oStory.Fields
     If oField.Type = wdFieldRef Then
       oField.Update
     End If
   Next oField
   Set oStory = oStory.Next
   Loop Until oStory Is Nothing
 Next oStory
Next
End If

End Sub

Thanks,
Bryan

> The following code will rename each of the formfields in that last Section
> of a document with a name of the form Sectionnm where n is the number of the
[quoted text clipped - 74 lines]
> >> >
> >> > Vista Small Business, Office XP
fumei - 03 Jun 2008 20:15 GMT
Jean-Guy…

What do you mean by that?
The following code does rename a bookmark...

Dim rngBook As Range
Dim strNewBookName As String

Const strBookName As String = "Test_1"

strNewBookName = "Book_1"

With ActiveDocument.Bookmarks
  Set rngBook = .Item(strBookName).Range
  .Item(strBookName).Delete
  .Add strNewBookName, rngBook
End With

With due respect, I would strongly disagree.  No, it does not rename a
bookmark.  It deletes a bookmark, and then creates a NEW one with the given
string.  The existing one is NOT renamed.  It is deleted.  Your code in fact
states this:  

.Item(strBookName).Delete

It is, in fact, deleted…gone.  A new one is created (.Add).  Yes, true, in
practical terms is seems like it is renamed, but technically…no, it is not
renamed.

Bryan,

Doug’s code should work for you.  I am not sure what you are doing with all
your arrays, but IF Doug’s assumptions are correct:

“Each formfield must already have a name for this to work and it assumes that
you would be inserting the file into a new section at the end of the document.


Then this is the way to go.  Essentially it is code that applies a renaming
of the formfields – NOT the bookmarks – in the last Section.  The assumption
is that you are inserting a section break, then the inserted file.  Therefore
the inserted file IS the last section.

However, you are NOT inserting a Section break, you are inserting a Page
Break.

  docrange.InsertBreak wdPageBreak

Change that to Section Break, a Next Page (wdSectionBreakNextPage ) I would
think.  Now, using the last Section vis-à-vis Doug’s code should work.

NOTE: there is not much point in declaring a Document object and setting it:

Set myDoc = ActiveDocument

But never really using it.  You set your document object, but still keep on
using things like:

ActiveDocument.Sections.Last.Range

ActiveDocument.Sections.Count

If you are going to have the document as an object, then you may as well
actually use the object fully.

Notice I moved the declaration of the variable z away from the instructions.
While not illegal syntax, generally variables are not declared deep within a
procedure.  It makes it hard to to fully know what is going on.  Generally,
variables are declared at the top of a procedure.

Dim z As Long

…other stuff

Set mydoc = ActiveDocument
mydoc.Unprotect

Set docrange = mydoc.Range

With docrange
  .Collapse wdCollapseEnd
  .InsertBreak wdSectionBreakNextPage
  .Collapse wdCollapseEnd
  .InsertFile strIDCard
End With

With mydoc.Sections.Last.Range
  For z = 1 To .FormFields.Count
      .FormFields(i).Name = "Section" & mydoc.Sections.Count & z
  Next z
End With
   
mydoc.Protect wdAllowOnlyFormFields, NoReset

>Hi Doug,
>Unfortunately this does not work and it may be my fault in my explanation.
[quoted text clipped - 108 lines]
>> >> >
>> >> > Vista Small Business, Office XP
bryan - 03 Jun 2008 20:51 GMT
The multiple arrays are set so that they can insert multiple files (id card
for each vehicle). Same as printing range of word (1,2,4,6-12).
The reason for insert with page break rather than section break is that with
section break I get the header and footer which I cannot have on the id card.

Is there a way to do this with using the  pagebreak rather than section break?

Thanks,
Bryan

> Jean-Guy…
>
[quoted text clipped - 202 lines]
> >> >> >
> >> >> > Vista Small Business, Office XP
Doug Robbins - Word MVP - 04 Jun 2008 02:45 GMT
My suggestion relied on the new file being inserted into a new section at
the end of the document.  Therefore, replace

docrange.InsertBreak wdPageBreak

with

docrange.InsertBreak wdSectionBreakNextPage

so that the file is inserted into a new Section.

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

> Hi Doug,
> Unfortunately this does not work and it may be my fault in my explanation.
[quoted text clipped - 193 lines]
>> >> >
>> >> > Vista Small Business, Office XP
bryan - 04 Jun 2008 14:01 GMT
Almost there.
I changed the document I am adding to have only 2 form field and using ref
for the other info as that is general to all. The 2 form fields are specific.
The form fields are MakeMod and VehID

When I insert 1 file, it is re-naming the 1st form field but, not the other.
Result is Section22 and VehID.

When I add 2 files and loop:
First added file - MakeMod and Section22
Second added file - "" and Section32

I changed my code to insert a section break and then used fumei's code to
clean it up a bit.
Here is my code:

Set myDoc = ActiveDocument
myDoc.Unprotect

Set docrange = myDoc.Range

With docrange
  .Collapse wdCollapseEnd
  .InsertBreak wdSectionBreakNextPage
  .Collapse wdCollapseEnd
  .InsertFile strIDCard
End With

With myDoc.Sections.Last.Range
  For z = 1 To .FormFields.Count
      .FormFields(i).Name = "Section" & myDoc.Sections.Count & z
  Next z
End With
   
myDoc.Protect wdAllowOnlyFormFields, NoReset

Thanks for the help,
Bryan

> My suggestion relied on the new file being inserted into a new section at
> the end of the document.  Therefore, replace
[quoted text clipped - 204 lines]
> >> >> >
> >> >> > Vista Small Business, Office XP
bryan - 04 Jun 2008 20:05 GMT
I got it.
Disregard my last post.
I seen where my error was in re-naming.
I was using z as the counter but, using i on the formfield.
I also changed to include section break rather than just page break.

Case closed!
Thanks to all for your suggestions and input.
I cannot tell you how much this is appreciated and how great this forum is.

Thanks again,
Bryan


> My suggestion relied on the new file being inserted into a new section at
> the end of the document.  Therefore, replace
[quoted text clipped - 204 lines]
> >> >> >
> >> >> > Vista Small Business, Office XP
Doug Robbins - Word MVP - 04 Jun 2008 20:39 GMT
You're welcome.

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 got it.
> Disregard my last post.
[quoted text clipped - 231 lines]
>> >> >> >
>> >> >> > Vista Small Business, Office XP
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.