Alert if value is already in listbox

C

Corey

I am trying to set up an alert (msgbox) on a userform.
If the user clicks on a value in Listbox1, AND the value is not listed in
Listbox2, then the value is added to the Listbox2 list.
1). If the value in Listbox1 is already added to Listbox2 i want a msgbox to
state that is already there.
2). I also want a value removed from Listbox2 if it is selected, how do i
Remove an item from a listbox when clicked on ?


Thus far i have:

Private Sub ListBox1_Click()
' Need to ensure only unique values are added to Listbox2 by a msgbox Alert
when a duplicate value is clicked on in Listbox1
ListBox2.AddItem ListBox1.Value
End Sub


Private Sub ListBox2_Click()
ListBox2.Removeitem ' This gives me a error though !
End Sub
 
D

Dave Peterson

First, if you're trying to set up a couple of listboxes that you can "transfer"
items between, you may want to review this post:

http://groups.google.com/[email protected]

There is a typo in the code--
Me.ListBox2.AddItemme.ListBox1.List (iCtr)
should be:
Me.ListBox2.AddItem Me.ListBox1.List(iCtr)

If you really meant what you wrote...

(Instead of using a msgbox, I used a label)


Option Explicit
Dim BlkProc As Boolean
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub ListBox1_Click()
Dim iCtr As Long
Dim FoundAMatch As Boolean

Me.Label1.Caption = ""

If Me.ListBox1.ListIndex < 0 Then
'nothing selected
Else
FoundAMatch = False
For iCtr = 0 To Me.ListBox2.ListCount - 1
If LCase(Me.ListBox1.Value) = LCase(Me.ListBox2.List(iCtr)) Then
Me.Label1.Caption = "Already there!"
FoundAMatch = True
Exit For
End If
Next iCtr

If FoundAMatch = True Then
'do nothing
Else
Me.ListBox2.AddItem Me.ListBox1.Value
End If

End If

End Sub
Private Sub ListBox2_Click()
If BlkProc = True Then
Exit Sub
End If

With Me.ListBox2
If .ListIndex < 0 Then
'do nothing
Else
BlkProc = True
.RemoveItem .ListIndex
BlkProc = False
.ListIndex = -1
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim iCtr As Long
With Me.ListBox1
.MultiSelect = fmMultiSelectSingle
For iCtr = 1 To 5
.AddItem "A" & iCtr
Next iCtr
End With

With Me.ListBox2
.MultiSelect = fmMultiSelectSingle
For iCtr = 1 To 5
.AddItem "B" & iCtr
Next iCtr
End With

Me.Label1.Caption = ""
End Sub
 
C

Corey

Thanks Dave,
I ended up scrapping the 2nd Listbox and using several textboxes, but this
still allowed a duplicate selection, but it is manageable.

Corey....
 

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