Function N1N2doublon(xplage As Range, xentete As Boolean, ParamArray xcolonnes())
Dim dico, tablo, n1, i&, j&, corr&
If xentete Then corr = 1 Else corr = 0
Set dico = CreateObject("scripting.dictionary")
tablo = xplage.Value: n1 = UBound(tablo)
n1 = xplage.Rows.Count
For i = 1 + corr To n1
ReDim T(LBound(xcolonnes(0)) To UBound(xcolonnes(0)))
For j = 1 To UBound(T) - LBound(T) + 1
T(LBound(T) + j - 1) = tablo(i, j)
Next j
If Not dico.exists(Join(T, "²")) Then dico.Add Join(T, "²"), ""
Next i
N1N2doublon = Array(n1 - corr - dico.Count, dico.Count)
End Function