lunes, 25 de agosto de 2008

Función que elige una al azar

Descargar el fichero: TomaUna.xlsm

Disponemos de un rango de celdas con diferentes valores, por ejemplo, ciudades. Se trata de diseñar una función que permita elegir al azar un valor de esa lista. Programaremos la función en el Editor de Visual Basic, de esta forma estará disponible en el Asistente de Funciones en la categoría de Funciones creadas por el usuario.


La función es la siguiente.



Function UNA(LISTA As Range)
Dim n As Long
Dim ale As Long
Randomize
n = LISTA.Count
ale = Int(Rnd * n) + 1
UNA = LISTA.Value2(ale, 1)
End Function

Randomize hace que los valores sean algo más aleatorios. Es aconsejable utilizarlo siempre que se use Rnd que es para calcular un valor aleatorio uniforme entre cero y uno.

Randomize se pronuncia [Randomais]

1 comentario:

  1. Hola quisiera saber el código para copiar una hoja de cálculo en cualquier libro, debido a que es un formato predeterminado que necesito trabajar constantemente, no se si me puedan ayudar.
    El código que llegué a grabar es el sgte:

    Sub INSERTA_RESUMEN()
    Workbooks.Open Filename:= _
    "C:\Documents and Settings\cbazan\Mis documentos\FG\INVRESUMEN.xls"
    Sheets("RESUMEN").Select
    Sheets("RESUMEN").Copy Before:=Workbooks( _
    "*_.xls").Sheets(1)
    End Sub

    Y se ejecuta la depuración por falla del nombre del archivo a donde quiero copiar.
    Me falta el código para darle la ruta de copiar a cualquier libro.
    Me puedes ayudar?

    ResponderEliminar