Excel - Números aleatorios sin repetir

 
Vista:
sin imagen de perfil

Números aleatorios sin repetir

Publicado por Luis (3 intervenciones) el 17/07/2021 15:56:25
Hola a todos, tengo la siguiente situación:
Estoy haciendo una planilla Excel en la cual tengo 200 filas con datos, a cada fila le corresponde un número.
En otra hoja hay un botón con un macro para ejecutar la función aleatorio entre 1 y 200, luego te muestra una pregunta correspondiente a esa fila y tu respondes.
Lo que necesitaría es que se generen números aleatorios del 1 al 200 pero sin repetir hasta completar los 200 y luego si vuelva a empezar.
No sé si fui muy claro con mí explicación, espero que me puedan dar una mano.
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
sin imagen de perfil

Números aleatorios sin repetir

Publicado por Luis (3 intervenciones) el 17/07/2021 21:59:01
Hola muchas gracias por responder, yo necesito que me arroje un valor aleatorio sin repetir cada vez que le doy la orden con un botón pero siempre en una misma celda.
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 David
Val: 211
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Números aleatorios sin repetir

Publicado por David (39 intervenciones) el 19/07/2021 22:27:33
Hice esta macro para que la pruebes, solo debes usarla en tu botón. Por cada vez que pulses, te generará un nùmero entre 1 y 200, pero primero buscará si existe, si existe generará otro y así. Cuando llegue a 200, ya no funcionará porque estarán todos los números requeridos sin repetir. Si quieres comenzar de nuevo, solo debes borrar los numeros de la hoja hjBD desde el A2 hacia lo que tengas abajo. (no olvides crear primero la hoja y renombrarla como hjBD, tal como muestro en la imagen). Saludos desde Chile!!

aleatorio200

Este es el código:
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
28
29
30
31
32
33
34
35
36
37
38
Sub aleatorio200()
 
    'insta @dj.vivanco
 
    Dim hjBD As Worksheet, buscar As Range
 
    Set hjBD = Sheets("hjBD")
 
   ' contador = 0
 
    With hjBD
 
      Do
 
      If .Range("A1").Value = 200 Then Exit Sub
 
      uf = .Range("a" & Rows.Count).End(xlUp).Row + 1
 
      numero = Int((Rnd * 200) + 1)
 
      Set buscar = .Range("A2:A201").Find(numero, LookIn:=xlValues, LookAt:=xlWhole)
 
          If buscar Is Nothing Then
 
              .Cells(uf, 1).Value = numero
 
              Exit Sub
 
          End If
 
      ' contador = contador + 1
      ' Cells(contador + 1, 2).Value = contador
 
     Loop While Not buscar Is Nothing
 
   End With
 
End Sub

Y si quieres el resultado al presionar el boton en celda B2 de Hoja1, solo ver lo que agregué al código:
unacelda
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

Números aleatorios sin repetir

Publicado por Luis (3 intervenciones) el 19/07/2021 23:23:17
Muchas gracias David, me resulto muy útil y pude resolver el problema que tenia.
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