Sub Combinaisons()
Dim sep$, tablo, ub&, i&, j&, k&, n&
sep = " " 'séparateur à adapter
tablo = [A1].CurrentRegion.Resize(, 3) 'matrice, plus rapide
ub = UBound(tablo)
ReDim resu(1 To (ub - 1) ^ 3, 1 To 1)
For i = 2 To ub
If tablo(i, 1) <> "" Then
For j = 2 To ub
If tablo(j, 2) <> "" Then
For k = 2 To ub
If tablo(k, 3) <> "" Then
n = n + 1
resu(n, 1) = tablo(i, 1) & sep & tablo(j, 2) & sep & tablo(k, 3)
End If
Next
End If
Next j
End If
Next i
'---restitution---
With ActiveSheet
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .[E2] '1ère cellule de restitution, à adapter
If n Then .Resize(n) = resu
.Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1).ClearContents 'RAZ en dessous
End With
End With
End Sub