Está en la página 1de 3

Sub COMBINACIONESSINREPETIR()

'Macro para ejecutar combinaciónes SIN REPETIR de 4 digitos del 0 al 9 con


repetición (Formula En Excel = COMBINA()
Dim fila As Integer
Dim columna As Integer
Dim num_minimo As Integer 'Es el número menor del elemento ejem: 0 al 9 sería el 0
Dim num_Superior As Integer 'Es el numero mayor del elemento Ejem: 0 al 9 sería el
9
Dim numdigitos As Integer 'Numero de digitos. Ejemplo: 1,2,3 sería 3 0,1 sería el 2
Dim Numero1 As Long, Numero2 As Long, Numero3 As Long, Numero4 As Long, Numero5 As
Long, Numero6 As Long, Numero7 As Long, Numero8 As Long, Numero9 As Long
Dim combinacion As String
fila = InputBox("Escribe el número de fila donde deseas la primera combinación",
"COMBINACIONES") '
columna = InputBox("Escribe el número de columna donde deseas la primera
combinación", "COMBINACIONES")
num_minimo = InputBox("Escribe el número menor del elemento para la combinación,
Ejemplo: Combinaciones del 0 al 9; el número sería el 0", "NUMERO LIMITE INFERIOR")
num_Superior = InputBox("Escribe el número mayor del elemento para la combinación,
Ejemplo: Combinaciones del 0 al 9; el número sería el 9", "NUMERO LIMITE SUPERIOR")
numdigitos = InputBox("Escribe la cantidad de digitos de las combinaciones,
Ejemplo: 1,2,3,4; Sería 4", "NÚMERO DE DIGITOS")
If numdigitos = 2 Then 'Combinaciones para dos digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero2
Next Numero1
Else
If numdigitos = 3 Then 'Combinaciones para tres digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 4 Then 'Combinaciones para cuatro digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero4
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 5 Then 'Combinaciones para cinco digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
For Numero5 = Numero4 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4 & "," &
Numero5
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero5
Next Numero4
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 6 Then 'Combinaciones para seis digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
For Numero5 = Numero4 + 1 To num_Superior
For Numero6 = Numero5 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4 & "," &
Numero5 & "," & Numero6
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero6
Next Numero5
Next Numero4
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 7 Then 'Combinaciones para siete digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
For Numero5 = Numero4 + 1 To num_Superior
For Numero6 = Numero5 + 1 To num_Superior
For Numero7 = Numero6 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4 & "," &
Numero5 & "," & Numero6 & "," & Numero7
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero7
Next Numero6
Next Numero5
Next Numero4
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 8 Then 'Combinaciones para ocho digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
For Numero5 = Numero4 + 1 To num_Superior
For Numero6 = Numero5 + 1 To num_Superior
For Numero7 = Numero6 + 1 To num_Superior
For Numero8 = Numero7 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4 & "," &
Numero5 & "," & Numero6 & "," & Numero7 & "," & Numero8
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero8
Next Numero7
Next Numero6
Next Numero5
Next Numero4
Next Numero3
Next Numero2
Next Numero1
Else
If numdigitos = 9 Then 'Combinaciones para nueve digitos
For Numero1 = num_minimo To num_Superior
For Numero2 = Numero1 + 1 To num_Superior
For Numero3 = Numero2 + 1 To num_Superior
For Numero4 = Numero3 + 1 To num_Superior
For Numero5 = Numero4 + 1 To num_Superior
For Numero6 = Numero5 + 1 To num_Superior
For Numero7 = Numero6 + 1 To num_Superior
For Numero8 = Numero7 + 1 To num_Superior
For Numero9 = Numero8 + 1 To num_Superior
combinacion = Numero1 & "," & Numero2 & "," & Numero3 & "," & Numero4 & "," &
Numero5 & "," & Numero6 & "," & Numero7 & "," & Numero8 & "," & Numero9
Cells(fila, columna) = combinacion
fila = fila + 1
Next Numero9
Next Numero8
Next Numero7
Next Numero6
Next Numero5
Next Numero4
Next Numero3
Next Numero2
Next Numero1
End If
End If
End If
End If
End If
End If
End If
End If
End Sub

También podría gustarte