hombre compañero no querrás que te hagamos el programa entero.
Deberías añadir algo de código y digas donde te da el problema o falla.
¿Cómo generas los números aleatorios? dices que no te los crea, ¿Cómo lo haces? ¿Has usado RANDOM?
Esto generaría un número aleatorio de 1 al 15
Private Sub Form_Load()
Dim N As Integer
Randomize
Me.Show
N = Int((Rnd * 15) + 1)
Print N
End Sub
Funcionamiento del RANDOMInt(Rnd * (Límite_superior - límite_inferior + 1) + límite_inferior)
Ejemplos:
==========================================
Si quieres números del 2 a 5:
Límite superior = 5
Límite inferior = 2
Queda:
N = Int(Rnd * (5 - 2 + 1) + 2)
Resolviendo queda:
==========================================
Si quieres números del 1 al 15:
Límite superior = 15
Límite inferior = 1
Queda:
N = Int(Rnd * (15 - 1 + 1) + 1)
Resolviendo queda:
Para evitar que se repitan:Esto lo metes en un MÓDULO
Option Explicit
Dim Contador As Integer
Const LimSuperior = 200
Dim lstNumAzar(1 To LimSuperior) As Integer
Public Function NumeroAleatorio(ByVal SizeBucle As Integer) As Integer
'On Error GoTo EvitarError
Dim i As Integer
Dim strNumAzar As Integer
Dim Repetido As Boolean
'reiniciar bucle
If Contador = SizeBucle Then
Contador = 0
strNumAzar = 0
NumeroAleatorio = 0
For i = 1 To LimSuperior
lstNumAzar(i) = 0
Next i
End If
'.................................................
Do
If Contador = SizeBucle Then Exit Do
Randomize
Repetido = False
strNumAzar = Int(Int(SizeBucle) * Rnd) + 1
For i = 1 To SizeBucle
If lstNumAzar(i) = strNumAzar Then Repetido = True
Next i
If Repetido = False Then
Contador = Contador + 1
lstNumAzar(Contador) = strNumAzar
NumeroAleatorio = strNumAzar
Repetido = False
End If
DoEvents
Loop While Repetido = True
End Function
Desde de un FORM lo llamas así (como ejemplo):
Dim I as integer
Text1.Text = ""
For I = 1 To 15
Text1.Text = Text1.Text & NumeroAleatorio(15) & vbCrLf
Next I
Cada vez que se llama a
NumeroAleatorio devuelve un número del 1 al 15 distinto.
Una vez se obtienen todos si se vuelve a llamar vuelve a empezarNota:
la variable SizeBucle antes lo llamé TamañoBucle, pero como el GesSHI de el hacker no acepta la Ñ lo he cambiado a SizeBucle.
El máximo permitido por la función es 200. pero se puede cambiar a otro valor cambiando la constante LimSuperior.
Otro ejemplo de uso:
Option Explicit
Dim CuentaClicks As Integer
Private Sub Command2_Click()
If CuentaClicks <= 15 Then
Text1.Text = ""
CuentaClicks = CuentaClicks + 1
Text1.Text = NumeroAleatorio(15)
If CuentaClicks = 15 Then
MsgBox ("ganaste con el cartón ejemplo cartón numero 1")
CuentaClicks = 0
End If
End If
End Sub
Creas un contador para saber cuando se han generado todo los números.
Suerte con el Bingo