Private memSelections(1 To 3) As String
Private Sub DemandeListBox_Change()
Dim iList As Long, iTab As Long, boolPresent As Boolean, mem1 As Long
For iList = 0 To DemandeListBox.ListCount - 1
If DemandeListBox.Selected(iList) Then
boolPresent = False
For iTab = 1 To 3
If memSelections(iTab) = DemandeListBox.List(iList) Then boolPresent = True
Next iTab
If Not boolPresent Then
memSelections(1) = memSelections(2)
memSelections(2) = memSelections(3)
memSelections(3) = DemandeListBox.List(iList)
End If
End If
Next iList
mem1 = Application.EnableEvents: Application.EnableEvents = False
For iList = 0 To DemandeListBox.ListCount - 1
boolPresent = False
For iTab = 1 To 3
If memSelections(iTab) = DemandeListBox.List(iList) Then boolPresent = True
Next iTab
If (boolPresent And Not DemandeListBox.Selected(iList)) Then DemandeListBox.Selected(iList) = True
If (Not boolPresent And DemandeListBox.Selected(iList)) Then DemandeListBox.Selected(iList) = False
Next iList
Application.EnableEvents = mem1
End Sub