ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   ListBox1 = "" (https://www.excelbanter.com/excel-programming/432818-listbox1-%3D.html)

Wobbly[_2_]

ListBox1 = ""
 
Why doesn't this work:

Private Sub CommandButton1_Click()
If ListBox1 = "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

While this does:

Private Sub CommandButton1_Click()
If ListBox1 < "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

or have I missed something embarrassingly obvious?
Cheers Wobbly.



Rick Rothstein

ListBox1 = ""
 
A ListBox never equals the empty String. When nothing has been selected, the
ListBox value is Null. Your code would work if you did this...

Private Sub CommandButton1_Click()
If IsNull(ListBox1) Then
MsgBox "True"
Else
MsgBox "False"
End If
End Sub

However, I think most programmers would check the ListIndex (it's -1 when
nothing is selected and the 0-based index otherwise)...

Private Sub CommandButton1_Click()
If ListBox1.ListIndex = -1 Then
MsgBox "True"
Else
MsgBox "False"
End If
End Sub

Also notice that the argument for the MsgBox subroutine (actually, it's a
function, but you are calling it like a subroutine), and this applies to all
subroutine calls where the Call keyword is not used, should not be embedded
in parentheses (otherwise you would have problems if you had more than one
argument).

--
Rick (MVP - Excel)


"Wobbly" wrote in message
...
Why doesn't this work:

Private Sub CommandButton1_Click()
If ListBox1 = "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

While this does:

Private Sub CommandButton1_Click()
If ListBox1 < "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

or have I missed something embarrassingly obvious?
Cheers Wobbly.



Patrick Molloy[_2_]

ListBox1 = ""
 
you could try

IF Listbox1.ListIndex = -1 Then
-1 means nothing selected

OR you could use ListCount eg
If Listbox1.Listcount=0 then
if its zero, then its empty


"Wobbly" wrote:

Why doesn't this work:

Private Sub CommandButton1_Click()
If ListBox1 = "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

While this does:

Private Sub CommandButton1_Click()
If ListBox1 < "" Then
MsgBox ("True")
Else
MsgBox ("False")
End If
End Sub

or have I missed something embarrassingly obvious?
Cheers Wobbly.





All times are GMT +1. The time now is 01:18 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com