Function Récap(ByVal Plg As Range) As Variant
Dim TbIndex() As Long, V As Variant, TRés() As Variant, Ls As Long, N As Long, Le As Long, Nbr As Long, Fini As Boolean
V = Plg.Value
With New Indexeur: .Init TbIndex, 1, UBound(V, 1): While .Actif: .ASupB = V(.A, 1) > V(.B, 1): Wend: End With
Set Plg = Application.Caller: ReDim TRés(1 To Plg.Rows.Count, 1 To 2) As Variant
Ls = 1: N = 1: Le = TbIndex(1)
Do: TRés(Ls, 1) = V(Le, 1): Nbr = 1
Do: N = N + 1: Fini = N > UBound(TbIndex): If Fini Then Exit Do
Le = TbIndex(N): If V(Le, 1) <> TRés(Ls, 1) Then Exit Do
Nbr = Nbr + 1: Loop
TRés(Ls, 2) = Nbr: Ls = Ls + 1: Loop Until Fini
While Ls <= UBound(TRés, 1): TRés(Ls, 1) = CVErr(xlErrNA): TRés(Ls, 2) = CVErr(xlErrNA): Ls = Ls + 1: Wend
Récap = TRés
End Function