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
|