Bonjour Kik, bonjour le forum,
Comme tu ne l'as pas demandé et par pur esprit de contradiction :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OL As Worksheet
Dim TV As Variant
Dim L As String
If Target.Column <> 1 Or Target.Row = 1 Then Exit Sub
Set OL = Worksheets("Listes de noms")
TV = OL.Range("A1").CurrentRegion
If Target.Value = "" Then Target.Offset(0, 1).Value = "": Exit Sub
For I = 2 To UBound(TV, 1)
If UCase(Target.Value) = UCase(TV(I, 1)) Then L = IIf(L = "", TV(I, 2), L & "," & TV(I, 2))
Next I
With Target.Offset(0, 1).Validation
.Delete
.Add xlValidateList, Formula1:=L
End With
If UBound(Split(L, ",")) = 0 Then Target.Offset(0, 1).Value = L
End Sub
Je n'ai pas commenté les codes, comme je le fais habituellement, pour ne pas t'offenser...