UserForm Questtion
Add an AfterUpdate Event Procedure to Textbox1 and
ListBox2 that "overrides" whatever is already entered in
the other; e.g:
Sub TextBox1_AfterUpdate()
UserForm1.ListBox2.ListIndex = -1
End Sub
Sub ListBox2_AfterUpdate()
UserForm1.TextBox1.Value = ""
End Sub
For more sophistication you could even add a messagebox to
verify what the user wants to do (e.g. override the
original selection (OK) or keep the original selection
(Cancel)).
K Dales
-----Original Message-----
Greetings,
I use the following code to get input from the user.
ListBox1 provides a
list of "Areas" (NAreaName) in my project. ListBox2
provides a list of
potential new "Areas" to add. TextBox1 provides a way for
the user to enter
a new "Area" by typing its name. The length is checked
and also a check is
done to see if the newly entered name is already in the
project. This all
works fine.
Here is the question; One of my users happened to click
on ListBox2 and then
entered a new "Area" in TextBox1 which is really what was
desired, however,
when the macro was finished, the "Area" selected in
ListBox2 was added to
the project vs the new name. How would you change this
code to deal with
this mis entry issue?
Hopefully I have explained the issue so it can be
understood.
Thanks in advance for your help!
Ray
Do
UserForm2.Show
NAreaName = UserForm2.TextBox1.Value
If Not UserForm2.ListBox2.ListIndex = -1 Then '
selecting typical
NAreaName = UserForm2.ListBox2.Value
End If
If Not bResponse Then
MsgBox "Cancel Selected"
End
End If
If NAreaName = "" Then
blnExit = False
ElseIf Len(NAreaName) 22 Then ' check if
name fits length
MsgBox "Name is more than 22 characters!
Try Again"
blnExit = False
ElseIf Application.CountIf(Range
("AreaNames"), _
NAreaName) 0 Then ' see if name has
been used
MsgBox "Name has already been used."
blnExit = False
Else
blnExit = True
End If
Loop While blnExit = False
.
|