Option Explicit
Private TDon(), TRés(), LR As Long
Sub Frequence()
TDon = Feuil3.UsedRange
ReDim TRés(1 To UBound(TDon, 1), 1 To 7): LR = 0
Empiler Feuil4.[A2].Value, 1
Feuil4.[B2].Resize(UBound(TRés, 1), UBound(TRés, 2)).Value = TRés
Erase TDon, TRés
End Sub
Private Sub Empiler(ByVal NomSal As String, C As Long)
Dim L As Long
On Error Resume Next
L = WorksheetFunction.Match(NomSal, WorksheetFunction.Index(TDon, 0, 1), 0)
On Error GoTo 0
If L = 0 Then Exit Sub
Do
LR = LR + 1: TRés(LR, C) = TDon(L, 2)
If C < 7 Then Empiler TDon(L, 2), C + 1
L = L + 1: If L > UBound(TDon, 1) Then Exit Do
Loop Until TDon(L, 1) <> NomSal
End Sub