1. AyudaExcel utiliza cookies. Si continuas utilizando AyudaExcel, estás aceptando la utilización de nuestras cookies. Más información.
  2. ¡Bienvenid@ a AyudaExcel! El foro más visitado sobre Excel en habla hispana.

    Si esta es tu primera visita, asegúrate de revisar los temas de la sección Utilización y Funcionamiento para familiarizarte con las funciones del foro. Si deseas publicar mensajes, será necesario que te Registres para que puedas dejar respuestas y crear tus propios mensajes, recuerda que es gratuito.

Tombola para sorteo!!!

Tema publicado en 'Macros y programación VBA' iniciado por PALADIAN, 29 Oct 2009.

  1. PALADIAN

    PALADIAN Usuario

    Registrado:
    6 Ene 2009
    Mensajes:
    81
    Me Gusta recibidos:
    0
    Hola amigos!!!

    Necesito crear un sistema de tombola, donde haya un boton de sorteo que permita mostrar al azar uno de los números desde el 1 al 75, escritos en la hoja 2 del archivo q adjunto.

    Es IMPORTANTE QUE EL SORTEO NO REPITA LOS NÚMEROS!!

    Solo eso amigos, espero puedan ayudarme =)

    Adjuntos:

    Editado por moderación: 25 Abr 2010
  2. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    94
    Género:
    Masculino
    Respuesta: Tombola para sorteo!!!

    Hola Paladian,

    por qué no usas la función aleatorio.entre (Excel 2007), así:

    =ALEATORIO.ENTRE(1;75)

    para generar un nuevo número presionas F9 y está.
  3. PALADIAN

    PALADIAN Usuario

    Registrado:
    6 Ene 2009
    Mensajes:
    81
    Me Gusta recibidos:
    0
    Respuesta: Tombola para sorteo!!!

    Hola amigo, muchas gracias por tu ayuda, solo me queda la duda si ese sistema me garantiza que los números no se repetirán...????


  4. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    94
    Género:
    Masculino
    Respuesta: Tombola para sorteo!!!

    Si no quieres que se repitan se puede complicar un poco... viendo lo que tienes e intuyendo lo que quieres, de pronto una macro como esta funcione:

    CÓDIGO:
    Sub Tombola()
    
        Dim Aleatorio As Integer
        
        Dim x As Integer
        
        x = Sheets("Hoja2").Range("A" & Cells.Rows.Count).End(xlUp).Row
        
        Aleatorio = WorksheetFunction.RandBetween(1, x)
    
        If x <> 1 Then
        
            With Sheets("Hoja2").Cells(Aleatorio, 1)
            
                Range("C7") = .Value
                
                [COLOR="Red"]Range("A100").End(xlUp).Offset(1) = .Value[/COLOR]
                
                .Delete Shift:=xlUp
            
            End With
            
        Else
        
            MsgBox "Se han acabado los números"
            
            With Sheets("Hoja2").Range("A1")
            
                .Value = 1
                
                .DataSeries xlColumns, Stop:=75
            
            End With
            
        End If
        
                
    End Sub
    La línea que he puesto en rojo irá registrando los números que van saliendo en la columna A de la hoja 1, así puedes comprobar que no se repiten, la puedes borrar si no quieres tener ese registro.

    Adjuntos:

  5. kakomil

    kakomil Usuario

    Registrado:
    6 Jul 2008
    Mensajes:
    64
    Me Gusta recibidos:
    0
    Respuesta: Tombola para sorteo!!!

    La formula da error en esta línea Aleatorio = WorksheetFunction.RandBetween(1, x)
    Última edición: 29 Oct 2009
  6. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    94
    Género:
    Masculino
    Respuesta: Tombola para sorteo!!!

    hola kakomil,

    la función aleatorio.entre (randbetween) está disponible en Excel 2007, por lo tanto te dará error si tienes una versión inferior.

    en la ayuda de la función =aleatorio encontrarás cómo generar números aleatorios entre los que quieras.
  7. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    94
    Género:
    Masculino
    Respuesta: Tombola para sorteo!!!

    para que no hayan problemas de compatibilidad con versiones anteriores puedes reemplazar la línea que genera el error por esta:

    CÓDIGO:
    Aleatorio = Int((x) * Rnd + 1)

    Adjuntos:

  8. otramireya

    otramireya Nuevo Usuario

    Registrado:
    25 Abr 2010
    Mensajes:
    1
    Me Gusta recibidos:
    0
    El tema me sirve... muchísimas gracias...

Compartir esta página