Excel - Aleatorio entre cifras de un número

 
Vista:

Aleatorio entre cifras de un número

Publicado por drews (2 intervenciones) el 09/12/2018 17:07:14
Hi. Necesitaría ayuda para poder hacer con vba en excel lo siguiente:

Tengo números de 8 cifras que van del 0 al 9 y donde puede haber cifras repetidas.
De cada uno de esos números de 8 cifras tengo que extraer un número aleatorio de 4 cifras construido con las que contiene el de 8 cifras. En las cifras del número de 4 pueden repetirse las cifras sin problema.

Pongo ejemplo:
Tengo el número con ocho cifras que van siempre del 0 al 9: 53963107. Ordenando sus cifras sería 01335679.
Tengo que sacar de él un número aleatorio de cuatro cifras que en este caso no puede contener 2, 4 ni 8 porque estas cifras no están en el número de ocho señalado. Pero en las cuatro cifras se permiten repeticiones. O sea, podrían valer por ejemplo 9337 ó 6031.

He usado macros para obtener números aleatorios excluyendo rangos pero no soy capaz de que funcionen aquí.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Aleatorio entre cifras de un número

Publicado por Antoni Masana (2478 intervenciones) el 10/12/2018 07:23:16
Sube algun ejemplo y las macros para ayudarte y poder entender mejor lo que quieres hacer.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Aleatorio entre cifras de un número

Publicado por Andres Leonardo (1583 intervenciones) el 10/12/2018 19:04:56
Asi con mactros bueno en realidad con una funcion de usuario.

Saludos espero te ayude


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
Public Function AleatorioConCodigo(Inferior As Long, Superior As Long) As String
Dim encontrado As Boolean
Dim Numeros(1 To 8) As String
Dim digito As Integer
Codigo = ""
Numero = Int((Superior - Inferior + 1) * Rnd() + Inferior)
 
'Genero la matriz
    For i = 1 To 8
        Numeros(i) = Mid(Numero, i, 1)
    Next i
'Ahora extraigo uno a uno los valores y valido para generar codigo unico
 
   While Len(Codigo) <> 4
      digito = Int((9 - 0 + 1) * Rnd() + 0)
      Randomize (digito)
        If UBound(Filter(Numeros, digito)) > -1 Then
            Codigo = Codigo & digito
            Randomize
        End If
   Wend
 
APer = "Numero 8 Digitos:" & Numero & " El codigo de 4 digitos es: " & Codigo
 
End Function
aleatorioconcodigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Aleatorio entre cifras de un número

Publicado por drews (2 intervenciones) el 10/12/2018 22:04:47
Gracias Andres Leornardo, funciona perfectamente,
Gracias a todos por la contribución.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar