View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Row source question.

Your first line of code worked fine for me:

Me.ctrlMajorEventList.RowSource = "Imp!$d$1:$d$32"

I like this syntax better:
Me.ctrlMajorEventList.RowSource _
= worksheets("Imp").range("d1:d32").address(external :=true)

But that's just my preference--your code worked fine for me.


When you say that the combobox was blank, do you mean the value of the combobox
was blank--or that the dropdown showed nothing (an empty list)?

If you wanted to show a choice in that combobox, you could add:
With Me.ctrlmajorEventList
.RowSource = Worksheets("imp").Range("D1:d32").Address(external :=True)
.ListIndex = 0 'or 0 to 31 (0 based)
End With

But I bet you didn't mean that.

When you use the dropdown arrow, do you see a very short dropdown area--like
there's nothing assigned to the combobox?

Or do you see a dropdown that looks like it would support 32 entries?

If you see the first, then something bad is happening (I don't have a clue).

But if you see the second, I'd check to make sure that D1:D32 on Imp actually
has data in it.

ps. And one more thing to make sure it's not a pc display problem.

If you close excel, then reopen it, then open your workbook and show the
userform, does it appear ok?






Hydra wrote:

I have a user form that contains a combo box.

The rowsource is a named range in Excel. If I put the named range in the
properties box of the combobox on the form, the form and combobox control
appears when called but the combo box is blank.

The row souce is on a different worksheet inthe same workbook from the sheet
that is active when the form is called. I have tried renaming the rowsource
when the form is initialized as follows (Iterations commented out).

Private Sub UserForm_Initialize()

Dim ws As Worksheet
Set ws = Worksheets("Imp")
'Me.ctrlMajorEventList.RowSource = "Imp!$d$1:$d$32" (shows blank data
against current weeksheet, where data exists.
'Me.ctrlMajorEventList.RowSource = MajorEventList (shows Blank data, major
eventlist is a rangename)
'Me.ctrlmajorEventList.Rowsource = "''Major events'!b1:b30" ) (Shows blank
data agianst a separte sheet where data exists)

End Sub

Whether I use:
Me.ctrlEventList.RowSource = MajorEventList

or

Me.ctrlEventList.RowSource = "'Major Events'!b1:b30"

I get no error message, but I also get no data showing in the form.

I call the form using:

frmSelectMajorEvent.Show

When it opens, it should initialize itself, right? Or do I need to open the
form and also call the initalize routine to initialize the data source?


--

Dave Peterson