Réponse acceptée !
Il ne faut pas utiliser la propriété ListIndex dans une liste multi select car elle renvoie l'index de la ligne ayant le focus, que celle-ci soit ou non actuellement sélectionnée.
Regarde cet exemple:
Option Explicit
Option Base 0
Private Sub UserForm_Initialize()
Dim tabSalaries() As String
ReDim tabSalaries(2, 1)
tabSalaries(0, 0) = "Philippe"
tabSalaries(0, 1) = "4580"
tabSalaries(1, 0) = "Claude"
tabSalaries(1, 1) = "2610"
tabSalaries(2, 0) = "Benoît"
tabSalaries(2, 1) = "4689"
LstSalarie.ColumnCount = 2
LstSalarie.List() = tabSalaries
End Sub
Private Sub CommandButton1_Click()
Dim i As Long
With LstSalarie
For i = 0 To (.ListCount - 1)
If .Selected(i) = True Then
MsgBox "Nom: " & LstSalarie.Column(0, i) & " Numéro: " & LstSalarie.Column(1, i)
End If
Next
End With
End Sub