Sub Combinaisons()
Dim liste, ub%, s$, col%, lig&, a%, b%, c%, d%, e%, f%
liste = Array("Foil", "Heavy", "Hull", "Light", "Radio", "Skin", "Winch")
ub = UBound(liste)
s = ", "
Application.ScreenUpdating = False
Rows("2:" & Rows.Count).ClearContents 'RAZ
'---1 mot---
col = 1: lig = 2
Cells(lig, col).Resize(ub + 1) = Application.Transpose(liste)
'---2 mots---
col = 2: lig = 2
For a = 0 To ub - 1
For b = a + 1 To ub
Cells(lig, col) = liste(a) & s & liste(b)
lig = lig + 1
Next b, a
'---3 mots---
col = 3: lig = 2
For a = 0 To ub - 2
For b = a + 1 To ub - 1
For c = b + 1 To ub
Cells(lig, col) = liste(a) & s & liste(b) & s & liste(c)
lig = lig + 1
Next c, b, a
'---4 mots---
col = 4: lig = 2
For a = 0 To ub - 3
For b = a + 1 To ub - 2
For c = b + 1 To ub - 1
For d = c + 1 To ub
Cells(lig, col) = liste(a) & s & liste(b) & s & liste(c) & s & liste(d)
lig = lig + 1
Next d, c, b, a
'---5 mots---
col = 5: lig = 2
For a = 0 To ub - 4
For b = a + 1 To ub - 3
For c = b + 1 To ub - 2
For d = c + 1 To ub - 1
For e = d + 1 To ub
Cells(lig, col) = liste(a) & s & liste(b) & s & liste(c) & s & liste(d) & s & liste(e)
lig = lig + 1
Next e, d, c, b, a
'---6 mots---
col = 6: lig = 2
For a = 0 To ub - 5
For b = a + 1 To ub - 4
For c = b + 1 To ub - 3
For d = c + 1 To ub - 2
For e = d + 1 To ub - 1
For f = e + 1 To ub
Cells(lig, col) = liste(a) & s & liste(b) & s & liste(c) & s & liste(d) & s & liste(e) & s & liste(f)
lig = lig + 1
Next f, e, d, c, b, a
'---7 mots---
col = 7: lig = 2
Cells(lig, col) = Join(liste, s)
Columns.AutoFit 'ajustement largeurs
End Sub