Sub Sépare()
Dim dico, i As Long, derL As Long, Plage As Range, TR, Ta, Tb, x As Long
Dim Li As Integer, cel As Range, j As Long, Clé, k As Long
Set dico = CreateObject("Scripting.Dictionary")
Set Plage = Range("A2:E" & Range("A" & Rows.Count).End(xlUp).Row)
Li = Round((Round(Plage.Count / 2, 0)) / 5, 0) * 5
ReDim TR(1 To Li, 1 To 2)
ReDim Ta(1 To Li / 5, 1 To 5)
ReDim Tb(1 To Li / 5, 1 To 5)
For Each cel In Plage
dico(CStr(cel)) = dico(CStr(cel)) + 1
Next
j = 1
For Each Clé In dico.keys
For i = 1 To dico(Clé)
x = x + 1
If x > Li Then
x = 1: j = 2
End If
TR(x, j) = Clé
Next
Next
For i = 1 To UBound(Ta, 1)
For j = 1 To UBound(Ta, 2)
k = k + 1
Ta(i, j) = TR(k, 1)
Tb(i, j) = TR(k, 2)
Next
Next
Range("G2").Resize(UBound(Ta, 1), UBound(Ta, 2)) = Ta
Range("M2").Resize(UBound(Tb, 1), UBound(Tb, 2)) = Tb
End Sub