'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