Extraer datos de una columna aleatoriamente sin que se repitan

En una Hoja3, columna 3, tengo una serie de registros y necesito un código que, cada vez que lo ejecute, me extraiga 5 registros de esa columna, de forma aleatoria y que no se repitan, y me los copie en la hoja1, celdas "C11:G11".

1 respuesta

Respuesta
2

Prueba la siguiente:

Sub RegistrosAleatorios()
  Dim arr As Variant
  Dim i As Long, x As Long, y As Long, n As Long
  '
  n = Sheets("Hoja3").Range("C" & Rows.Count).End(3).Row
  Randomize
  arr = Evaluate("=row(1:" & n & ")")
  '
  For i = 1 To n
    x = Int(UBound(arr) * Rnd + 1)
    y = arr(x, 1)
    arr(x, 1) = arr(i, 1)
    arr(i, 1) = y
  Next
  '
  For i = 1 To 5
    Sheets("Hoja1").Range("C11").Offset(0, i - 1).Value = Sheets("Hoja3").Range("C" & arr(i, 1))
  Next
End Sub

No pongas la pregunta como anónimo.

Ya tu usuario rg10 es bastante anónimo.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas