Multiselect listbox if no selection

B

BigPig

Hi All,

I have a listbox that is multiselect. I want to find a way to figure out if
anything is selected, if not "do something". I wrote this which works, but I
have to think that there is an easier way.

Dim Z As Integer
Z = 0
With lst_Comp_Lv
For i = 0 To .ListCount - 1
If .Selected(i) Then
Else
Z = Z + 1
End If
Next i
End With

If Z = lst_Comp_Lv.ListCount Then
MsgBox "There was nothing selected."
Exit Sub
End If

I also tried:

If lst_Comp_Lv = Null Then
MsgBox "There is nothing selected."
Exit Sub
End If

But that didn't work.

Any suggestions or advice you could provide would be greatly appreciated.
Thank you.
 
J

Jim Rech

You do have to go through the list box an item at a time. You could quit
the loop as so as you find a selected item though.

Dim SomethingSelected as Boolean
With lst_Comp_Lv
For i = 0 To .ListCount - 1
If .Selected(i) Then
SomethingSelected = True
Exit For
End If
Next i
End With
If Not SomethingSelected Then
MsgBox "There was nothing selected."
End If


--
Jim
| Hi All,
|
| I have a listbox that is multiselect. I want to find a way to figure out
if
| anything is selected, if not "do something". I wrote this which works, but
I
| have to think that there is an easier way.
|
| Dim Z As Integer
| Z = 0
| With lst_Comp_Lv
| For i = 0 To .ListCount - 1
| If .Selected(i) Then
| Else
| Z = Z + 1
| End If
| Next i
| End With
|
| If Z = lst_Comp_Lv.ListCount Then
| MsgBox "There was nothing selected."
| Exit Sub
| End If
|
| I also tried:
|
| If lst_Comp_Lv = Null Then
| MsgBox "There is nothing selected."
| Exit Sub
| End If
|
| But that didn't work.
|
| Any suggestions or advice you could provide would be greatly appreciated.
| Thank you.
|
 
B

BigPig

Hi Jim,

Thank you that worked.

Question:

Why wouldn't this work?

If lst_Comp_Lv = Null Then
MsgBox "There is nothing selected."
Exit Sub
End If

Thanks again.
 
J

Jim Rech

If lst_Comp_Lv = Null Then

You didn't specified a property. A list box has several. What property of
the list box are you comparing to Null? The default propery is Value. So
what you're really asking is:

If lst_Comp_Lv.Value = Null Then

But what does the Value property of a list box represent? You've assumed it
represents whether any items are selected I guess but maybe it represents
the number of items in the listbox. Or its length or name or... So we
check Help.

Help says the Value proerty of a list box is "The value in the BoundColumn
of the currently selected rows."

That certainly has nothing to do with whether any items are selected. So
that's why it didn't help you.

--
Jim
| Hi Jim,
|
| Thank you that worked.
|
| Question:
|
| Why wouldn't this work?
|
| If lst_Comp_Lv = Null Then
| MsgBox "There is nothing selected."
| Exit Sub
| End If
|
| Thanks again.
 
B

BigPig

Jim,

Yes I was assuming that if I didn't select anything, the value of the
listbox would be null.

Thank you for your thorough explanation.
 

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