Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TDon(), L&, Arg As String, Dat As Date, TJn() As String, J&
If Not Intersect([B4,B2], Target) Is Nothing Then
TDon = Feuil1.UsedRange.Value
Arg = Me.[B4].Value
Dat = Me.[B2].Value
ReDim TJn(1 To 50)
For L = 1 To UBound(TDon, 1)
If Split(TDon(L, 4) & vbLf, vbLf)(0) = Arg And TDon(L, 2) = Dat Then
J = J + 1: TJn(J) = "n° " & TDon(L, 1): End If
Next L
If J > 0 Then
ReDim Preserve TJn(1 To J)
[B31].Value = Join(TJn, ", ")
Else: [B31].Value = Empty: End If: End If
End Sub