[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] UserForm_Initialize()
[COLOR=darkblue]With[/COLOR] ListBox1
.List = Range("Progress").Value [COLOR=green]'Range of cells with the list of tasks[/COLOR]
.MultiSelect = fmMultiSelectMulti
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]With[/COLOR]
UserForm1.Caption = "Select Completed Tasks"
CommandButton1.Caption = "Okay"
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] CommandButton1_Click()
[COLOR=darkblue]Dim[/COLOR] i [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR], strTemp [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR], strPriority [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR]
[COLOR=darkblue]Const[/COLOR] MySeparator [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR] = ", "
[COLOR=darkblue]With[/COLOR] ListBox1
[COLOR=green]'Read selections[/COLOR]
[COLOR=darkblue]For[/COLOR] i = 0 [COLOR=darkblue]To[/COLOR] .ListCount - 1
[COLOR=darkblue]If[/COLOR] .Selected(i) [COLOR=darkblue]Then[/COLOR]
strPriority = .List(i)
strTemp = strTemp & .List(i) & MySeparator
.Selected(i) = [COLOR=darkblue]False[/COLOR]
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
[COLOR=darkblue]Next[/COLOR] i
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]With[/COLOR]
[COLOR=darkblue]If[/COLOR] Len(strTemp) [COLOR=darkblue]Then[/COLOR]
ActiveCell.Value = strPriority
strTemp = Left(strTemp, Len(strTemp) - Len(MySeparator))
Range("P" & ActiveCell.Row).Value = strTemp
[COLOR=darkblue]Else[/COLOR]
ActiveCell.ClearContents
Range("P" & ActiveCell.Row).ClearContents
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
UserForm1.Hide
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] UserForm_Activate()
[COLOR=green]'Match Listbox selections with ActiveCell selections[/COLOR]
[COLOR=darkblue]Dim[/COLOR] strCell [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR], i [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
[COLOR=darkblue]Const[/COLOR] MySeparator [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]String[/COLOR] = ", "
strCell = Range("P" & ActiveCell.Row).Value & MySeparator
[COLOR=darkblue]With[/COLOR] ListBox1
[COLOR=darkblue]For[/COLOR] i = 0 [COLOR=darkblue]To[/COLOR] .ListCount - 1
.Selected(i) = InStr(strCell, .List(i) & MySeparator)
[COLOR=darkblue]Next[/COLOR] i
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]With[/COLOR]
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[COLOR=darkblue]Private[/COLOR] [COLOR=darkblue]Sub[/COLOR] UserForm_QueryClose(Cancel [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Integer[/COLOR], CloseMode [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Integer[/COLOR])
[COLOR=green]'Hide userform if Close "X" clicked[/COLOR]
[COLOR=darkblue]If[/COLOR] CloseMode = 0 [COLOR=darkblue]Then[/COLOR]
Cancel = [COLOR=darkblue]True[/COLOR]
Me.Hide
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]If[/COLOR]
End [COLOR=darkblue]Sub[/COLOR]