code wise, you could use something like:
Public Sub Standard()
Dim avVariation, avInfo, vTmp, vTmpP, avOut
Dim lngR As Long, lngC As Long
avVariation = Sheets("Setup").Range("A2:J10")
ReDim avInfo(1 To 2, 1 To UBound(avVariation, 2))
vTmpP = 1
For lngC = LBound(avVariation, 2) To UBound(avVariation, 2) Step 1
vTmp = 0
For lngR = LBound(avVariation, 1) To UBound(avVariation, 1) Step 1
vTmp = vTmp - (avVariation(lngR, lngC) <> "")
Next lngR
avInfo(1, lngC) = vTmp
avInfo(2, lngC) = vTmp * vTmpP
vTmpP = avInfo(2, lngC)
Next lngC
ReDim avOut(1 To vTmpP, 1 To UBound(avVariation, 2))
For lngR = LBound(avOut, 1) To UBound(avOut, 1)
For lngC = LBound(avOut, 2) To UBound(avOut, 2)
avOut(lngR, lngC) = avVariation(1 + Int(lngR / (vTmpP / avInfo(2, lngC))) Mod avInfo(1, lngC), lngC)
Next lngC
Next lngR
With Sheets.Add
.Name = "Variations_" & Format(Now, "yyyymmddhhmmss")
.Cells(1).Resize(UBound(avOut, 1), UBound(avOut, 2)).Value = avOut
End With
End Sub
but, if interested, you could achieve the same thing using formulae -- let us know.
note: above is one method - there will be plenty of others (some no doubt more efficient than the above) -- but this code would generate your 6912 combos in a second or so.
Bookmarks