Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
I built my own userform in VBA. And it works by populating bookmarks
in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks. |
#2
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Once you've inserted Customer at a bookmark (without overwriting it; see
http://word.mvps.org/FAQs/MacrosVBA/...tBookmark.htm), you can use a REF field to repeat the content elsewhere. Or you can use five bookmarks named Customer1, Customer2, etc. It's not that much more trouble for your UserForm code to insert the field five times. -- Suzanne S. Barnhill Microsoft MVP (Word) Words into Type Fairhope, Alabama USA "Erik Witkop" wrote in message ... I built my own userform in VBA. And it works by populating bookmarks in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks. |
#3
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Use Document Variables and DOCVARIABLE fields instead of bookmarks
-- 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 "Erik Witkop" wrote in message ... I built my own userform in VBA. And it works by populating bookmarks in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks. |
#4
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
On May 12, 12:06*am, "Doug Robbins - Word MVP"
wrote: Use Document Variables and DOCVARIABLE fields instead of bookmarks -- 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 "Erik Witkop" wrote in message ... I built my own userform in VBA. And it works by populating bookmarks in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks.- Hide quoted text - - Show quoted text - Thanks Doug. That is a much better solution that bookmarking. Working with bookmarks is a pain. Do you have any basic code to take a textfield from a userform and populate a docvariable? I couldn't find any code that worked in conjuction with userforms? Thanks. |
#5
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Erik Witkop wrote:
On May 12, 12:06 am, "Doug Robbins - Word MVP" wrote: Use Document Variables and DOCVARIABLE fields instead of bookmarks -- 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 "Erik Witkop" wrote in message ... I built my own userform in VBA. And it works by populating bookmarks in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks.- Hide quoted text - - Show quoted text - Thanks Doug. That is a much better solution that bookmarking. Working with bookmarks is a pain. Do you have any basic code to take a textfield from a userform and populate a docvariable? I couldn't find any code that worked in conjuction with userforms? Thanks. The exact form of the code depends on where you place it (within the userform's code, such as in the _Click procedure of the OK button; or in the macro that declares and shows the userform). If it's in the userform code, it could be something like this: ActiveDocument.Variables("NameOfVariable").Value = TextBox1.Text If it's in the calling macro, the left side is the same but "TextBox1" must be addressed as a property of the userform: Dim UF As UserForm1 Set UF = New UserForm1 UF.Show ActiveDocument.Variables("NameOfVariable").Value = UF.TextBox1.Text Don't take the latter as production code; at the very least, there's more that needs to be done to make it error-resistant. -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. |
#6
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
On May 13, 9:49 am, "Jay Freedman" wrote:
Erik Witkop wrote: On May 12, 12:06 am, "Doug Robbins - Word MVP" wrote: Use Document Variables and DOCVARIABLE fields instead of bookmarks -- 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 "Erik Witkop" wrote in message ... I built my own userform in VBA. And it works by populating bookmarks in the word document. But I find I can only have 1 bookmark named "customer" for example. So this does not scale well at all for my VBA script. So how can I populate data with a userform where I can reuse a variable in the document. I want to populate 'customer' in 5 different places in the doc. And bookmarks don't cut it. Can anyone suggest a better way to get this done? Thanks.- Hide quoted text - - Show quoted text - Thanks Doug. That is a much better solution that bookmarking. Working with bookmarks is a pain. Do you have any basic code to take a textfield from a userform and populate a docvariable? I couldn't find any code that worked in conjuction with userforms? Thanks. The exact form of the code depends on where you place it (within the userform's code, such as in the _Click procedure of the OK button; or in the macro that declares and shows the userform). If it's in the userform code, it could be something like this: ActiveDocument.Variables("NameOfVariable").Value = TextBox1.Text If it's in the calling macro, the left side is the same but "TextBox1" must be addressed as a property of the userform: Dim UF As UserForm1 Set UF = New UserForm1 UF.Show ActiveDocument.Variables("NameOfVariable").Value = UF.TextBox1.Text Don't take the latter as production code; at the very least, there's more that needs to be done to make it error-resistant. -- Regards, Jay Freedman Microsoft Word MVP FAQ:http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. Thanks Jay, But for the life of me I cannot get this working. This is my code. 1. one form with one field. The form name is UserForm1. The field name is customer_field. 2. one variable in the word doc named 'customer_var' My code is this: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Private Sub CommandButton1_Click() With ActiveDocument .Variables("customer_var").Value = customer_field.Text .Fields.Update End With End Sub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What is not happening, is the docvariable in the word doc never gets populated. I don't get any debug errors, it simply does not populate the docvariable in my word doc. Any thoughts? Thanks for all your help. There is very little flaming here as long as you follow the rules. I like that. |
#7
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Erik Witkop wrote:
Thanks Jay, But for the life of me I cannot get this working. This is my code. 1. one form with one field. The form name is UserForm1. The field name is customer_field. 2. one variable in the word doc named 'customer_var' My code is this: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Private Sub CommandButton1_Click() With ActiveDocument .Variables("customer_var").Value = customer_field.Text .Fields.Update End With End Sub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What is not happening, is the docvariable in the word doc never gets populated. I don't get any debug errors, it simply does not populate the docvariable in my word doc. Any thoughts? Thanks for all your help. There is very little flaming here as long as you follow the rules. I like that. You need three pieces, and I suspect you have only two of them. 1. The "field" customer_field is a text entry control on the userform. I assume that works. 2. The document variable customer_var is only a storage location -- by itself it's invisible. The code you showed is correct, and it works here. 3. The piece that I think you're missing is a DOCVARIABLE field in the body of the document to display the value of the document variable. Open the Insert Field dialog, select the DocVariable field type, and enter customer_var in the "New name" box. -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. |
#8
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
On May 15, 12:38*pm, "Jay Freedman" wrote:
Erik Witkop wrote: Thanks Jay, But for the life of me I cannot get this working. This is my code. 1. one form with one field. The form name is UserForm1. The field name is customer_field. 2. one variable in the word doc named 'customer_var' My code is this: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Private Sub CommandButton1_Click() With ActiveDocument * .Variables("customer_var").Value = customer_field.Text * .Fields.Update End With End Sub - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What is not happening, is the docvariable in the word doc never gets populated. I don't get any debug errors, it simply does not populate the docvariable in my word doc. Any thoughts? Thanks for all your help. There is very little flaming here as long as you follow the rules. I like that. You need three pieces, and I suspect you have only two of them. 1. The "field" customer_field is a text entry control on the userform. I assume that works. 2. The document variable customer_var is only a storage location -- by itself it's invisible. The code you showed is correct, and it works here. 3. The piece that I think you're missing is a DOCVARIABLE field in the body of the document to display the value of the document variable. Open the Insert Field dialog, select the DocVariable field type, and enter customer_var in the "New name" box. -- Regards, Jay Freedman Microsoft Word MVP * * * *FAQ:http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit.- Hide quoted text - - Show quoted text - Jay, I just made a new fresh word doc and added the variable and it works like a charm. I must have something bad in my original doc. Thanks for your patience and your help!!! |
Reply |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Userform question (selecting name will self complete fields) | Microsoft Word Help | |||
Userform Template | Microsoft Word Help | |||
Userform | Microsoft Word Help | |||
Userform in word | Microsoft Word Help | |||
creating a userform | Microsoft Word Help |