• drop down listbox (office2000)

    Author
    Topic
    #394712

    can any one point me in the right direction on how to create a drop down list with say 6 x items

    Viewing 1 reply thread
    Author
    Replies
    • #725696

      Is this in a VBA userform or a Word formfield?

      Assuming it is the formfield and you want to create it interactively then…

      • Show the forms toolbar
      • Click the drop down form field tool
      • Right click the new form field and select Properties
      • Type the text for the first entry in the Drop down item: box
      • Click the Add button
      • Now add the next five items the same way
      • Click OK
      • From the Tools menu select Protect Document, click the Forms radio button and OK
        [/list]StuartR
      • #726080

        i thank you for a quick response, i have already tried what you have suggested . Unfortunately it isn’t what i am looking for. i am working on a vba userform, which i should have mentioned, and for which i appologise.
        all and any help is appreciated.

        • #726092

          The easiest thing to do is to populate the drop down list box in the Load or Activate event of the form.

          Drag a dropdown list control onto your userform and give it a useful name.
          Assuming a userform called frmTest and a control called ctlTest…

          In the frmText.Load event include code like
          ctlTest.AddItem “First”
          ctlTest.Additem “Second

          StuartR

          • #729156

            thank you for all your help. a solution has been sent to me by Doug Robbins-wordMVP which i have coppied for all to see:

            Hi Alex,

            Using the AddItem method, the following commands in the userform initialize
            event will add items Item1, Item2, …. Item10 to a listbox Listbox1 on the
            user form:

            Private Sub UserForm_Initialize()
            For i = 1 To 10
            ListBox1.AddItem “Item” & i
            Next i
            End Sub

            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 Suppliers.doc
            Application.ScreenUpdating = False
            ‘ Open the file containing the client details
            Set sourcedoc = Documents.Open(FileName:=”e:worddocsClients.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.InsertAfter 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.

          • #729157

            thank you for all your help. a solution has been sent to me by Doug Robbins-wordMVP which i have coppied for all to see:

            Hi Alex,

            Using the AddItem method, the following commands in the userform initialize
            event will add items Item1, Item2, …. Item10 to a listbox Listbox1 on the
            user form:

            Private Sub UserForm_Initialize()
            For i = 1 To 10
            ListBox1.AddItem “Item” & i
            Next i
            End Sub

            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 Suppliers.doc
            Application.ScreenUpdating = False
            ‘ Open the file containing the client details
            Set sourcedoc = Documents.Open(FileName:=”e:worddocsClients.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.InsertAfter 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.

        • #726093

          The easiest thing to do is to populate the drop down list box in the Load or Activate event of the form.

          Drag a dropdown list control onto your userform and give it a useful name.
          Assuming a userform called frmTest and a control called ctlTest…

          In the frmText.Load event include code like
          ctlTest.AddItem “First”
          ctlTest.Additem “Second

          StuartR

      • #726081

        i thank you for a quick response, i have already tried what you have suggested . Unfortunately it isn’t what i am looking for. i am working on a vba userform, which i should have mentioned, and for which i appologise.
        all and any help is appreciated.

    • #725702

      Is this in a VBA userform or a Word formfield?

      Assuming it is the formfield and you want to create it interactively then…

      • Show the forms toolbar
      • Click the drop down form field tool
      • Right click the new form field and select Properties
      • Type the text for the first entry in the Drop down item: box
      • Click the Add button
      • Now add the next five items the same way
      • Click OK
      • From the Tools menu select Protect Document, click the Forms radio button and OK
        [/list]StuartR
    Viewing 1 reply thread
    Reply To: drop down listbox (office2000)

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: