View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default using variables in listbox

You could hide the userform instead of unloading it.

Or you could declare your array (is that what you're using?) in a General module
and make it public:

In a general module:
Public myArr() as string

In the Ok button of the userform (or where you want it):

Private Sub CommandButton1_Click()
Dim L As Long
Dim iCtr as long

redim myArr(0 to me.listbox1.listcount - 1)

ictr = -1

For L = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(L) = True Then
ictr = ictr + 1
myarr(ictr) = Me.ListBox1.List(L)
End If
Next L

if ictr = -1 then
'nothing selected, what should happen here?
'stop the process and warn the user???
else
redim preserve myArr(0 to iCtr)
end if

unload me

End Sub

When the userform is unloaded, then the array will still exist.

John wrote:

Here's my problem. The program runs until "UserForm1.Show" which opens
the listbox and everything works great. I run code similar to what you
offered below and have my data in an array.

But now what? I want to close the listbox and use the data to do other
things. If I do "Unload UserForm1" all the variables are wiped out.

I have a command button "OK" on the userform but the manual I used
(Excel VBA Programming for Dummies) didn't say what to use for it. The
only thing I know is "unload userform1."

Thanks

Harald Staff wrote:
Hi John

Sure. Question is, pass them from the listbox and to what ?

General way to scan the listbox for selections:

Private Sub CommandButton1_Click()
Dim L As Long
For L = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(L) = True Then
MsgBox Me.ListBox1.List(L)
End If
Next
End Sub

HTH. Best wishes Harald


"John" wrote in message
...
My first attempts at using listboxes.

have listbox in a user form with multiple selections.

Is there a way to pass the selections out of the listbox? Right now
when I close the listbox all the variables holding the selections
disappear too.

Or to do more with the selections do I just hide the listbox?

Thanks

JOhn



--

Dave Peterson