Sub CombinationsNP(vElements As Variant, p As Integer, vresult As Variant, lRow As Long, iElement As Integer, iIndex As Integer)
Dim i As Integer
For i = iElement To UBound(vElements)
vresult(iIndex) = vElements(i)
If iIndex = p Then
lRow = lRow + p + 1
'Range("C" & lRow) = Join(vresult, " ") 'One columnn results
Range("C" & lRow).Resize(p).Value = Application.Transpose(vresult) 'Multi column Result
Else
Call CombinationsNP(vElements, p, vresult, lRow, i + 1, iIndex + 1)
End If
Next i
End Sub