Bonsoir
essaie ceci
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Clients As Object
Dim Cel As Range
MsgBox Target.Address
'If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$2:$G$4" Then
Set Clients = CreateObject("Scripting.Dictionary")
For Each Cel In Range("B14:B" & Cells(Rows.Count, "B").End(xlUp).Row)
If Cel <> "" And Cel.Offset(, 3).Value = "Non Payé" Then
Clients(Cel.Value) = Cel.Value
End If
Next Cel
With Target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Clients.Keys, ",")
End With
End If
End Sub