Saltar al contenido

Imágenes Aleatorias


Recommended Posts

publicado

Buenas tardes

Estoy realizando una actividad (Lotería).

Necesito ayuda al dar clic sobre el botón barajar que las cartas se revuelvan y se muestren de una en una en un control imagen cada vez que presiono en un botón (Siguiente).

Loteria.xlsm

publicado

Revisa el adjunto.

He añadido estas macros en la hoja Inicio.

Dim Cartas() As Integer
Dim Índice As Integer

Private Sub cmdBarajear_Click() 'Evento click del botón Barajear <------------------
ReDim Cartas(Hoja2.UsedRange.Rows.Count)
Inicio:
   n = Int(Hoja2.UsedRange.Rows.Count * Rnd) + 1
   For x = 0 To UBound(Cartas)
      If Cartas(x) = n Then GoTo Inicio
      If Cartas(x) = 0 Then
         Cartas(x) = n
         If x = UBound(Cartas) - 1 Then Exit For
         GoTo Inicio
      End If
   Next
   Índice = 0
End Sub

Private Sub cmdSiguiente_Click() 'Evento click del botón Siguiente '<----------------------
imgCartas.Picture = LoadPicture(Hoja2.Range("B" & Cartas(Índice)))
Índice = Índice + 1
If Índice > UBound(Cartas) - 1 Then Índice = UBound(Cartas) - 1
End Sub

 

Loteria.xlsm

  • 1 month later...
publicado
En 5/7/2019 at 10:28 , Antoni dijo:

Revisa el adjunto.

He añadido estas macros en la hoja Inicio.


Dim Cartas() As Integer
Dim Índice As Integer

Private Sub cmdBarajear_Click() 'Evento click del botón Barajear <------------------
ReDim Cartas(Hoja2.UsedRange.Rows.Count)
Inicio:
   n = Int(Hoja2.UsedRange.Rows.Count * Rnd) + 1
   For x = 0 To UBound(Cartas)
      If Cartas(x) = n Then GoTo Inicio
      If Cartas(x) = 0 Then
         Cartas(x) = n
         If x = UBound(Cartas) - 1 Then Exit For
         GoTo Inicio
      End If
   Next
   Índice = 0
End Sub

Private Sub cmdSiguiente_Click() 'Evento click del botón Siguiente '<----------------------
imgCartas.Picture = LoadPicture(Hoja2.Range("B" & Cartas(Índice)))
Índice = Índice + 1
If Índice > UBound(Cartas) - 1 Then Índice = UBound(Cartas) - 1
End Sub

 

Loteria.xlsm 25 kB · 8 downloads

Muchas gracias!

Estoy tratando de insertar un control imagen (Check) en el lugar correspondiente según la carta que aparezca.

Utilicé 

If imgCartas.Picture = LoadPicture("C:\Users\magza\OneDrive\Escritorio\Memoria Blanca-Azul\Loteria\02 El Diablito.jpg") Then
    imgJ2C02.Visible = True
End If

Inserté el control imagen con el name imgJ2C02 y le cambié la propiedad Visible=False

Pero no responde. :(

Indicar.jpg

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.