View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Russ Russ is offline
external usenet poster
 
Posts: 108
Default multiselect listbox backcolor

Thanks Jim - works fine and not too much code as you said
--
russ


"Jim Rech" wrote:

Does anyone know a way to change the color of a multiselect listbox and
keep its selections without a lot of code to remember the array settings?


No, but it's not that much code to get and set the selected items:

Dim SelectedArray() As Integer

Private Sub UserForm_Initialize()
Dim x As Integer
For x = 1 To 10
Me.ListBox1.AddItem x
Next
End Sub

Private Sub CommandButton1_Click()
SetSelectedArray
Me.ListBox1.BackColor = vbRed
ResetListboxSelectedItems
End Sub

Sub SetSelectedArray()
Dim Counter As Integer, ArrayCounter As Integer
Erase SelectedArray
For Counter = 1 To Me.ListBox1.ListCount
If Me.ListBox1.Selected(Counter - 1) Then
ArrayCounter = ArrayCounter + 1
ReDim Preserve SelectedArray(1 To ArrayCounter)
SelectedArray(ArrayCounter) = Counter - 1
End If
Next
End Sub

Sub ResetListboxSelectedItems()
Dim Counter As Integer
For Counter = 1 To UBound(SelectedArray)
Me.ListBox1.Selected(SelectedArray(Counter)) = True
Next
End Sub


--
Jim
"Russ" wrote in message
...
|I have a form with several textboxes, comboboxes and multiselect listboxes.
| I would like to change the backcolor of each without changing the value in
| each. A simple statement like:
| Me.textbox1.backcolor = VbRed changes the backcolor of textboxes without
| changing the textbox.value
| Me.combobox1.backcolor = VbRed changes the backcolor of comboxes without
| changing the combobox.value
| However, Me.listbox1.backcolor = VbRed changes the backcolor of
multiselect
| listboxes but also resets the listbox1 to no selections.
|
| Does anyone know a way to change the color of a multiselect listbox and
keep
| its selections without a lot of code to remember the array settings?
|
| --
| russ