add combox with code

D

Dawna

Good Morning,

Could someone help with a code to add a combobox to a userform using code.
I'd like to have a command button "add" which will add this combobox.

Thanks in advance.
Dawna
 
D

Dave Peterson

How about an alternative...

Add your combobox to the userform while you're in design mode--but hide it and
show it using the commandbutton.

It makes things lots easier.
 
P

Paul

Dawna

You've got two main choices :

1. Add the combobox in your design, but make it Visible = False. When the
time comes during your code use
MyForm.MyCombo.Visible = True

2. Add the combobox using vba code.
This falls into two bits
a. Add the combobox
b. Fill it with your data

The downside of 2 is that you'll need to make sure it doesn't get placed
over other controls.

If you want more info on 2, post a reply.
 
D

Dawna

Hi Paul. Thank you for the reply. Could you help with code for the second
choice?
Thank you again.
Dawna
 
P

Paul

This should add your box :

Private Sub Create_Combo()
Dim MyCombo As MSforms.ComboBox
Set MyListBox = MyForm.Controls.Add("Forms.ComboBox.1")
With MyListBox
.Top = 10
.Left = 20
.Height = 50
.Name = "myBox"
End With

End Sub

Then to add some data :

Sub Add_Combo_Data()
dim myArray(Number_of_Items)
' Add the items for your list into the array as follows :
For nCount = 1 to Number_of_Items
myArray(nCount) = Whatever ' each of your items
Next
MyNewForm.MyBox.List = myArray

End Sub

You can get very clever with more columns, but positioning becomes seriously
more difficult.

Hope that helps get you started.
 
D

Dawna

Thank you for the help! Much appreciated.

Paul said:
This should add your box :

Private Sub Create_Combo()
Dim MyCombo As MSforms.ComboBox
Set MyListBox = MyForm.Controls.Add("Forms.ComboBox.1")
With MyListBox
.Top = 10
.Left = 20
.Height = 50
.Name = "myBox"
End With

End Sub

Then to add some data :

Sub Add_Combo_Data()
dim myArray(Number_of_Items)
' Add the items for your list into the array as follows :
For nCount = 1 to Number_of_Items
myArray(nCount) = Whatever ' each of your items
Next
MyNewForm.MyBox.List = myArray

End Sub

You can get very clever with more columns, but positioning becomes seriously
more difficult.

Hope that helps get you started.
 
D

Dawna

Thank you as well Dave.

Dave Peterson said:
How about an alternative...

Add your combobox to the userform while you're in design mode--but hide it and
show it using the commandbutton.

It makes things lots easier.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top