[code]Sub aargh()
'avec une pile
vi = Array(1, 2, 3, 4) 'valeurs initiales des boucles (4 valeurs-> 4 boucles imbriquées)
vf = Array(10, 8, 11, 20) 'valeurs finales des boucles
ReDim pile(UBound(vi))
pointeurpile = 0
Do
If pile(pointeurpile) = "" Then pile(pointeurpile) = vi(pointeurpile) Else pile(pointeurpile) = pile(pointeurpile) + 1
If pile(pointeurpile) > vf(pointeurpile) Then
pile(pointeurpile) = ""
pointeurpile = pointeurpile - 1
Else
If pointeurpile = UBound(vi) Then
'traitement
t = ""
For i = LBound(pile) To UBound(pile)
t = t & " " & pile(i)
Next i
ctrl = ctrl + 1
Cells(ctrl, 1) = t
Else
If pointeurpile < UBound(vi) Then
pointeurpile = pointeurpile + 1
End If
End If
End If
Loop Until pointeurpile = -1
End Sub
Sub aargh1()
'avec un traitement récursif
vi = Array(1, 2, 3, 4)
vf = Array(10, 8, 11, 20)
combine vi, vf
End Sub
Sub combine(vi, vf, Optional n = 0, Optional t= "", Optional ctrl = 0)
ot = t
For i = vi(n) To vf(n)
t = t & " " & i
If n = UBound(vi) Then
'traitement
ctrl = ctrl + 1
Cells(ctrl, 1) = t
Else
combine vi, vf, n + 1, s, ctrl
End If
t = ot
Next i
End Sub