Mostrar form de forma aleatoria (vba excel)

He hecho un juego en excel de 4 dificultades por 20 preguntas cada nivel. Pero la pega es que siempre son las mismas preguntas para cada nivel.

Mi duda es:

Seria posible crear, por ejemplo, ¿40/50/60 preguntas de cada nivel y que solo mostrase 20 en orden aleatorio?

1 Respuesta

Respuesta
1

No se como lo tienes planeado y/o estructurado, pero te dejo un ejemplo:

Esto hice: video demo

Y este es el código (a modo de idea general) presiento que sabes lo suficiente de VBA como para entenderlo y adaptarlo a tu proyecto:

Sub PreguntaAleatoria()
Dim usedRnd(19) As Integer
Dim RndIndex As Integer
Dim i As Integer
For i = 1 To 20
OneMore:
    Randomize
    RndIndex = Int(30 * Rnd) + 1
    If IsError(Application.Match(RndIndex, usedRnd, False)) And RndIndex <= 30 Then
        usedRnd(i - 1) = RndIndex
    Else
        GoTo OneMore
    End If
Next i
For i = LBound(usedRnd) To UBound(usedRnd)
    MsgBox i + 1 & " de 20" & vbCr & vbCr & _
            Cells(usedRnd(i), 1).Value
Next i
End Sub

PD: Si necesitas una explicación de como funciona el código o que significa alguna cosa, déjame saber.

Salu2

Hola buenas, gracias por la ayuda.

¿

Podría mandarte el archivo a algún correo?

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