Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función Rnd

| 12 comentarios

La Función Rnd devuelve un número aleatorio entre 0 y 1.

El siguiente ejemplo muestra un botón que genera un número aleatorio,

el cual si es mayor a 5 se muestra de color rojo, caso contrario, de color verde.

Sub Aleat()
Producto = Rnd * 10
Range("C9").Value = Producto
If Producto > 5 Then
Range("C9").Font.Color = RGB(200, 0, 0)
Else
Range("C9").Font.Color = RGB(0, 200, 0)
End If
End Sub

Para mayor detalle consultar:

Descargar ejemplo de RND

 

Elaborado por: Oscar Lozano

12 comentarios

  1. Las siguientes líneas escribe un número al azar del 1 al 100 y analiza si es par o impar:

    Sub paroimpar()
    Range("a5") = Int(Rnd * 100) + 1
    If Range("a5") / 2 = Int(Range("a5") / 2) Then
    Range("b5") = "Es PAR"
    Else
    Range("b5") = "Es IMPAR"
    End If
    End Sub

  2. Esta función es adecuada para generar números aleatorios al hacer un click.

    Se puede modificar esta función completando la sintaxis con "Rnd(Number)"

    Un Rnd(#Menor que cero), dará como resultado siempre el mismo número, utilizando Number como valor de inicialización.
    Un Rnd(#Mayor que cero), dará como resultado el siguiente número aleatorio en la secuencia.
    Un Rnd(#Igual a cero), dará como resultado el número generado por última vez.
    Un Rnd(Omitido), dará como resultado, el siguiente número aleatorio en la secuencia.

    Ejemplos:
    Rnd()
    Rnd(0.85)
    Rnd(5)
    Rnd(0)

    Saludos cordiales

  3. Esta función equivalente a ALEATORIO() de Excel es muy utilizada po ejemplo cuando se crean contraseñas o códigos de productos de un almacen.

    Los ejemplos son muy explicativos aunque se asocian con otras funciones para los programadores es facil de entender.

  4. hay que tomar en cuenta cuando se le de llamar a la función Rnd, siempre se debe utilizar la instrucción Randomize sin argumento para iempezar el generador de números aleatorios con un valor inicial basado en el reloj del mismo sistema.
    pero para producir enteros aleatorios en un intervalo dado, se puede utilizar esta formula que ayudara :
    Int((Límite_superior - límite_inferior + 1) * Rnd + límite_inferior) Aquí el límite_superior es el número mayor del intervalo y límite_inferior es el número menor del intervalo y asi podremos utilizar el rango que nos convenga de acuerdo al trabajo a realizar

  5. La función ALEATORIO tiene mucha utilidad en la estadistica para generar probabilidades, sin embargo se puede hacer usar de ALEATORIO.ENTRE para elegir numeros con limites inferior y superior.

  6. La función nos presenta la propiedad de colocar un color determinante a un rango definido, por mayor igual o menor igual, a un numero aleatorio. Podriamos mejorar este función intentando colocar una propiedad a este numero aleatorio para establecer su limite inferio y superior, como la función en excel =aleatorio.entre

  7. La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro.

    Rnd (número)

    Dim LimiteInferior As Integer
    Dim LimiteSuperior As Integer

    LimiteInferior = 20

    LimiteSuperior = 40

    MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)

  8. Esta función me parece muy útil y pude entenderla mejor gracias al documento que colgaste como ejemplo. Sin embargo me gustaría saber que distribución es la que toma el VBA por default ,aunque creo que es la distribución uniforme; si es asi, entonces como se podría aplicar esta función pero con otras distribuciones como la binomial por ejemplo.

  9. Me queda claro que la función Rnd tiene grandes aplicaciones en estadística y probabilidades, simulación Monte Carlo, procesos aleatorios y finanzas cuantitativas, entre otros campos. Todavía no termino de familiarizarse con las estructuras de control, la creación de botones y otros. Teniendo estas cosas claras entiendo que es posible definir para varios rangos diferentes tipos de colores.

    • Me queda claro que la función Rnd tiene grandes aplicaciones en estadística y probabilidades, simulación Monte Carlo, procesos aleatorios y finanzas cuantitativas, entre otros campos. Todavía no termino de familiarizarse con las estructuras de control, la creación de botones y otros. Teniendo estas cosas claras entiendo que es posible definir para varios rangos diferentes tipos de colores.

  10. Interesante ejemplo

  11. MUCHAS GRACIAS Y EN CASO DE QUE ALGUN COLEGA NO QUIERA QUE LE SALGAN DECIMALES SOLO TIENE QUE COLOCAR ESTA LINEA

    Selection.NumberFormat = "0"

    O SEA AQUI DEBAJO
    Range("C9").Value = Producto
    Selection.NumberFormat = "0"

Deja una respuesta

Los campos requeridos estan marcados con *.