[COLOR="DarkSlateGray"][B]Private Sub COMBINE_Click()
tata Range("B4"), Range("J14") [COLOR="Sienna"]'première cellule des données, première cellule des réponses.[/COLOR]
End Sub
Private Sub tata(pDat As Range, rDat)
Dim i&, j&, m&, u&, x&, tmp$, Data(), nDat&(), sDat$(), oPlg As Range
With pDat
Set oPlg = .Resize(1, IIf(IsEmpty(.Offset(0, 1)), 1, .End(xlToRight).Column - .Column + 1))
m = oPlg.Count
ReDim Data(1 To 1, 1 To m)
ReDim nDat(1 To m)
For i = 1 To m
With .Offset(0, i - 1)
Data(1, i) = .Resize(IIf(IsEmpty(.Offset(1, 0)), 1, .End(xlDown).Row - .Row + 1), 2).Value
End With
Next i
End With
x = 1
For i = 1 To m
nDat(i) = UBound(Data(1, i), 1)
x = x * nDat(i)
Next i
ReDim sDat(1 To x, 1 To 1)
For i = 1 To x
tmp = ""
u = i
For j = m To 1 Step -1
tmp = Data(1, j)(1 + (u - 1) Mod (nDat(j)), 1) & " - " & tmp
u = 1 + (u - 1) \ nDat(j)
Next j
sDat(i, 1) = Left$(tmp, Len(tmp) - 3)
Next i
With rDat
.Resize(IIf(IsEmpty(.Offset(1, 0)), 1, .End(xlDown).Row - .Row + 1), 2).ClearContents
.Resize(x, 1).Value = sDat
End With
End Sub[/B][/COLOR]