Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target(2) = "" Then Exit Sub
Dim tablo, ub&, combi(), i&, j&, n&
Cancel = True
Set tablo = Range(Target, Target.End(xlDown))
tablo.Sort tablo, Header:=xlNo 'tri
tablo = tablo 'matrice, plus rapide
ub = UBound(tablo)
If Application.Combin(ub, 2) + Target.Row - 1 > Rows.Count Then _
MsgBox "Nombre de combinaisons trop élevé": Exit Sub
ReDim combi(1 To Application.Combin(ub, 2), 1 To 2)
For i = 1 To ub - 1
For j = i + 1 To ub
n = n + 1
combi(n, 1) = tablo(i, 1)
combi(n, 2) = tablo(j, 1)
Next
Next
Target(1, 3).EntireColumn.Resize(, 2).ClearContents 'RAZ
Target(1, 3).Resize(UBound(combi), 2) = combi
End Sub