Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Can you make a multi line drop down form field?? I want to make a template
for envelopes. I have numerous addresses and don't want to have all of those files. Does anyone have any suggestions?? |
#2
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
This routine loads a listbox with client details stored in a table in a
separate document (which makes it easy to maintain with additions, deletions etc.), that document being saved as Clients.Doc for the following code. On the UserForm, have a list box (ListBox1) and a Command Button (CommandButton1) and use the following code in the UserForm_Initialize() and the CommandButton1_Click() routines Private Sub UserForm_Initialize() Dim sourcedoc As Document, i As Integer, j As Integer, myitem As Range, m As Long, n As Long ' Modify the path in the following line so that it matches where you saved Clients.doc Application.ScreenUpdating = False ' Open the file containing the client details Set sourcedoc = Documents.Open(FileName:="e:\worddocs\Clients.doc" ) ' Get the number or clients = number of rows in the table of client details less one i = sourcedoc.Tables(1).Rows.Count - 1 ' Get the number of columns in the table of client details j = sourcedoc.Tables(1).Columns.Count ' Set the number of columns in the Listbox to match ' the number of columns in the table of client details ListBox1.ColumnCount = j ' Define an array to be loaded with the client data Dim MyArray() As Variant 'Load client data into MyArray ReDim MyArray(i, j) For n = 0 To j - 1 For m = 0 To i - 1 Set myitem = sourcedoc.Tables(1).Cell(m + 2, n + 1).Range myitem.End = myitem.End - 1 MyArray(m, n) = myitem.Text Next m Next n ' Load data into ListBox1 ListBox1.List() = MyArray ' Close the file containing the client details sourcedoc.Close SaveChanges:=wdDoNotSaveChanges End Sub Private Sub CommandButton1_Click() Dim i As Integer, Addressee As String Addressee = "" For i = 1 To ListBox1.ColumnCount ListBox1.BoundColumn = i Addressee = Addressee & ListBox1.Value & vbCr Next i ActiveDocument.Bookmarks("Addressee").Range.Insert After Addressee UserForm2.Hide End Sub The Initialize statement will populate the listbox with the data from the table and then when a client is selected in from the list and the command button is clicked, the information for that client will be inserted into a bookmark in the document. You may want to vary the manner in which it is inserted to suit our exact requirements, but hopefully this will get you started. To make it easy for you, the code has been written so that it will deal with any number of clients and any number of details about each client. It assumes that the first row of the table containing the client details is a header row. -- 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 "jmcole" wrote in message ... Can you make a multi line drop down form field?? I want to make a template for envelopes. I have numerous addresses and don't want to have all of those files. Does anyone have any suggestions?? |
#3
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
Doug Robbins---Thanks. I've never tried anything like this, but I think I can
do it. "Doug Robbins - Word MVP" wrote: This routine loads a listbox with client details stored in a table in a separate document (which makes it easy to maintain with additions, deletions etc.), that document being saved as Clients.Doc for the following code. On the UserForm, have a list box (ListBox1) and a Command Button (CommandButton1) and use the following code in the UserForm_Initialize() and the CommandButton1_Click() routines Private Sub UserForm_Initialize() Dim sourcedoc As Document, i As Integer, j As Integer, myitem As Range, m As Long, n As Long ' Modify the path in the following line so that it matches where you saved Clients.doc Application.ScreenUpdating = False ' Open the file containing the client details Set sourcedoc = Documents.Open(FileName:="e:\worddocs\Clients.doc" ) ' Get the number or clients = number of rows in the table of client details less one i = sourcedoc.Tables(1).Rows.Count - 1 ' Get the number of columns in the table of client details j = sourcedoc.Tables(1).Columns.Count ' Set the number of columns in the Listbox to match ' the number of columns in the table of client details ListBox1.ColumnCount = j ' Define an array to be loaded with the client data Dim MyArray() As Variant 'Load client data into MyArray ReDim MyArray(i, j) For n = 0 To j - 1 For m = 0 To i - 1 Set myitem = sourcedoc.Tables(1).Cell(m + 2, n + 1).Range myitem.End = myitem.End - 1 MyArray(m, n) = myitem.Text Next m Next n ' Load data into ListBox1 ListBox1.List() = MyArray ' Close the file containing the client details sourcedoc.Close SaveChanges:=wdDoNotSaveChanges End Sub Private Sub CommandButton1_Click() Dim i As Integer, Addressee As String Addressee = "" For i = 1 To ListBox1.ColumnCount ListBox1.BoundColumn = i Addressee = Addressee & ListBox1.Value & vbCr Next i ActiveDocument.Bookmarks("Addressee").Range.Insert After Addressee UserForm2.Hide End Sub The Initialize statement will populate the listbox with the data from the table and then when a client is selected in from the list and the command button is clicked, the information for that client will be inserted into a bookmark in the document. You may want to vary the manner in which it is inserted to suit our exact requirements, but hopefully this will get you started. To make it easy for you, the code has been written so that it will deal with any number of clients and any number of details about each client. It assumes that the first row of the table containing the client details is a header row. -- 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 "jmcole" wrote in message ... Can you make a multi line drop down form field?? I want to make a template for envelopes. I have numerous addresses and don't want to have all of those files. Does anyone have any suggestions?? |
#4
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
You could use an AutoTextList field; save each address as an AutoText entry
in the given style and give it a short name. See http://word.mvps.org/FAQs/TblsFldsFms/AutoTextList.htm -- Suzanne S. Barnhill Microsoft MVP (Word) Words into Type Fairhope, Alabama USA Word MVP FAQ site: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. "jmcole" wrote in message ... Can you make a multi line drop down form field?? I want to make a template for envelopes. I have numerous addresses and don't want to have all of those files. Does anyone have any suggestions?? |
#5
![]()
Posted to microsoft.public.word.docmanagement
|
|||
|
|||
![]()
I would use Outlook to store the addresses and the method at
http://www.gmayor.com/Macrobutton.htm to place the data in your template (or you could simply download the envelope samples from my web site that has this done for you). -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org jmcole wrote: Can you make a multi line drop down form field?? I want to make a template for envelopes. I have numerous addresses and don't want to have all of those files. Does anyone have any suggestions?? |
Reply |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Word form field as subject line in an e-mail | Microsoft Word Help | |||
Spellchecking Locked Bookmarked FormFields Results in LOSS of Book | Microsoft Word Help | |||
The drop down form field is not showing drop downs. Why? | Microsoft Word Help | |||
Line break in drop down field | Microsoft Word Help | |||
How do I create a drop down calendar field a form | Microsoft Word Help |