RE:Distintas ordenaciones de 5 elementas
El resultado es una cadena que representa una matriz; las filas están separadas por el caracter vbCr y los elementos de cada fila por una coma ",". Si quieres, te será fácil convertirlo en una matriz con la función split.
No explico el método, creo que no tendréis problemas para seguirlo.
Un saludo.
Public Sub main()
Dim Resultado As String
Resultado = Comb(5)
Debug.Print Resultado
Debug.Print "Combinaciones totales: " & UBound(Split(Resultado, vbCr)) + 1
End Sub
Public Function Comb(max As Integer, Optional Tabla As String = "", Optional a As String = "", Optional niv As Integer = 0) As String
Dim i As Integer
Dim s As String
For i = 1 To max
s = a
If InStr(s & ",", "," & i & ",") = 0 Then
s = s & "," & i
If niv + 1 < max Then
Comb = Comb(max, Tabla, s, niv + 1)
Else
Tabla = Tabla & vbCr & Mid(s, 2)
End If
End If
Next
If niv = 0 Then
Tabla = Mid(Tabla, 2)
Comb = Tabla
End If
End Function