Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello -
I'm using Excel 2000 VBA to programmatically create a userform containing a listbox. I can watch the userform as it is created and filled (via the debugger), but as soon as the show line executes, the listbox entries disappear - other items, such as checkbox labels & buttons appear fine. Can someone tell me how to solve this problem, and more importantly, why it is occuring? I have one other question also: A width property can be set for an item such as a command button however that property is neither seen in the complete_word dropdown list nor in the object browser for the item - it can be seen in the Properties Window, however. Why ?? Thanks in advance, (Please post any replies, as I cannot access the email acct easily). Keb Here is a simplified version of my code: Sub ShowListbox() Dim TempForm Dim NewListBox As MSForms.ListBox Dim i As Integer Application.VBE.MainWindow.Visible = False ' ' Create the userform ' Set TempForm = ThisWorkbook.VBProject.VBComponents.Add(3) TempForm.Properties("Width") = 100 ' ' Add listbox & populate it. ' Set NewListBox = TempForm.Designer.Controls.Add("forms.ListBox.1", , True) For i = 1 To 10 NewListBox.AddItem "Item " & LTrim(Str(i)) Next ' ' Show the form. ' VBA.UserForms.Add(TempForm.Name).Show ' ' Delete the form & clean up. ' ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=TempForm Set TempForm = Nothing Set NewListBox = Nothing End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
My understanding is that when s form is shown its 'design' instance is
destroyed and a run-time instance created. Therefore, when I ran your code in Excel2000 I got the expected results i.e. a visible but unpopulated listbox. Here's an amendment: ' ' Show the form. ' Dim frm As Object Set frm = VBA.UserForms.Add(TempForm.Name) Set NewListBox = frm.ListBox1 For i = 1 To 10 NewListBox.AddItem "Item " & LTrim(Str(i)) Next frm.Show Set frm = Nothing ' ' Delete the form & clean up. ' -- |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks, onedaywhen - Appreciate the explanation and sample (working) code!
Cheers, keb |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
filtering to show items in a listbox | Excel Discussion (Misc queries) | |||
Adding Items to a ListBox-Unique Items Only | Excel Programming | |||
Items in a Listbox | Excel Programming | |||
Sort Listbox Items | Excel Programming | |||
Listbox--moving items up or down | Excel Programming |