Bonjour et bienvenue sur le forum
Un essai à tester si j'ai bien compris. Te convient-il ?
Option Explicit
Dim tablo, tabloR()
Dim i&, k&, k1&, k2&, k3&, col&, dte As Date
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" Then Exit Sub
Range("A5").CurrentRegion.Offset(1, 0).ClearContents
tablo = Sheets("brouillon").Range("A1").CurrentRegion
ReDim tabloR(1 To UBound(tablo, 1), 1 To 3)
dte = Range("A2")
k1 = 0: k2 = 0: k3 = 0
For i = 2 To UBound(tablo, 1)
If DateSerial(Year(tablo(i, 1)), Month(tablo(i, 1)), Day(tablo(i, 1))) = dte Then
If tablo(i, 3) = "EPY" Then
col = 1
tabloR(k1 + 1, col) = tablo(i, 2)
k1 = k1 + 1
ElseIf tablo(i, 3) = "CAV" Then
col = 2
tabloR(k2 + 1, col) = tablo(i, 2)
k2 = k2 + 1
ElseIf tablo(i, 3) = "REP" Then
col = 3
tabloR(k3 + 1, col) = tablo(i, 2)
k3 = k3 + 1
End If
k = k + 1
End If
Next i
Range("A5").CurrentRegion.Offset(1, 0).ClearContents
k = Application.Max(k1, k2, k3)
On Error Resume Next
Range("A6").Resize(k, 3) = tabloR
Range("A2").Select
End Sub
Bye !