Esta función te permite obtener un numero aleatorio de 3 o 4 cifras, con dígitos repetidos o no en el número:
Public Function GeneraNros(IntCifras As Integer, IntPacha As Integer) As String' Función para generar números aleatorios
' Parámetros: IntCifras -->> Número de cifras o dígitos a generar por lo regular 3 o 4
' IntPacha ----> 1= Con Pachas 2= Sin pachas
' Retorna: Cadena de un número de 3 o 4 dígitos ' Elaborado Por: Eduardo Pérez Fernández ' Fecha: 02/09/2003'Dim intNro As Integer ' variable para guardar un número aleatorio
Dim por As Integer ' variable contador
Dim aux As String ' variable de cadena para ir guardando los dígitos
Dim aux2 As String
Dim uno, dos, tres, cuatro As String
Dim lnPachas As String
Dim miNro As StringIf IntPacha = 1 Then
For por = 1 To IntCifras Randomize intNro = Int(10 * Rnd) aux = aux & LTrim(RTrim(Str(intNro))) Next por
Else ' Sin Pachas
For por = 1 To IntCifras Randomize intNro = Int(10 * Rnd)
miNro = LTrim(RTrim(Str(intNro))) aux = aux & miNroIf Len(aux) = 4 And IntCifras = 4 Then
uno = Mid(aux, 1, 1)
dos = Mid(aux, 2, 1)
tres = Mid(aux, 3, 1)
cuatro = Mid(aux, 4, 1)
If uno = dos Then
por = por - 3
aux = Mid(aux, 1, 1)
ElseIf dos = tres Then
por = por - 2 aux = Mid(aux, 1, 2)
ElseIf tres = cuatro Then
por = por - 1 aux = Mid(aux, 1, 3)
End If
ElseIf Len(aux) = 3 And IntCifras = 3 Then
uno = Mid(aux, 1, 1)
dos = Mid(aux, 2, 1)
tres = Mid(aux, 3, 1)
If uno = dos Then
por = por - 2 aux = Mid(aux, 1, 1) ElseIf dos = tres Then por = por - 1 aux = Mid(aux, 1, 2) End If
End IfNext por End IfGeneraNros = aux
End Function
Ej. Parta obtener un número al azar de 3 cifras permitiendo que el número tenga dígitos contiguos repetidos (como 114, 255, 300 etc) llame la función así:
GeneraNros(3,1)
Puedes crear una tabla con un campo texto, indexado sin repetidos, para ir registrando los números obtenidos con la función. Esta función la uso para asignar números en boletas de rifas.