Visual Basic para Aplicaciones - Generar numeros sin repeticion

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por CoquitoPE (79 intervenciones) el 10/12/2015 23:24:44
Amigos foreros un saludo... y por favor una ayuda...
Como genero en forma secuencial numeros sin repeticion de una base n...
ejem: para una base 6...
inicio.....
1 2 3 4 5 6
1 2 3 4 6 5
1 2 3 5 4 6
1 2 3 5 6 4
1 2 3 6 4 5
1 2 3 6 5 4
1 2 4 3 5 6
1 2 4 3 6 5
.....
siguen 720 = 6*5*4*3*2*1 = 6!
.....
final...
6 5 4 3 2 1
....
Gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por GMG (12 intervenciones) el 11/12/2015 10:39:42
Hace un tiempo necesitaba lo mismo que tú, encontré la macro que te paso.

El código no es mio.

Verás que puedes hacer combinaciones o permutaciones, en tu caso necesitarás permutaciones.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por CoquitoPE (79 intervenciones) el 11/12/2015 15:26:14
Gracias GMG...
Es un ensamblado... tienes el código ?
Un abrazo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por gmg (12 intervenciones) el 14/12/2015 17:34:53
el código lo puedes ver dentro del mismo excel.

Es en VB, para verlo:

Vista
Macros
Ver macros
Modifciar

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por CoquitoPE (79 intervenciones) el 15/12/2015 01:17:23
Gracias GMG...
Lo vi... es un código interesante... prevee todas las posibilidades... vaya hasta el numero de lineas necesarias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Generar numeros sin repeticion

Publicado por nn (13 intervenciones) el 12/12/2015 01:09:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim buf As String
 
Private Sub fai(a, i, l)
Dim q$, t%, z$, p$
If (i < l) Then
   q = a
   For t = i To l - 1
       z = VBA.Mid$(q, i + 1, 1)
       If (t = i Or Mid$(a, t + 1, 1) <> z) Then
          p = Mid$(q, t + 1, 1)
          Mid$(q, t + 1, 1) = z
          Mid$(q, i + 1, 1) = p
          Call fai(q, i + 1, l)
       End If
   Next
Else
     buf = buf + a + vbCrLf
End If
End Sub
 
Private Sub test()
Dim s$
s = "1234"
buf = ""
Call fai(s, 0, VBA.Len(s))
MsgBox buf
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Generar numeros sin repeticion

Publicado por CoquitoPE (79 intervenciones) el 15/12/2015 01:21:47
Un saludo y Gracias nn...
me arrojo un error.... al llamar al recursivo... falta un ajuste... o estoy errado en mi EXCEL 2013
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar