¿Cómo llamo un Function desde otro Procedimiento vba excel?

Tengo el siguiente código:

Function Hrst(FechaInicial As Date, FechaFinal As Date)
Hrst = (FechaInicial - FechaFinal) * 24
End Function

-------------------------------------------------------------------------------

'En esta parte quiero personalizar mi función para que parezca como la ayuda que aparece en excel

Private Sub DescribeFuncionHrsT()
Call Hrst
Dim Categoria As String          ' Describe la categoría dela función
Dim FunctionName As String      ' Describe el nombre de la funcion
Dim FunctionDescription As String ' Descripción de la funcion
Dim ArgDes(1 To 2) As String '     'Descripción de los Argumentos
FunctionName = "HrsT"
FunctionDescription = "Devuelve el número de horas entre 2 fechas"
Categoria = "ExcelINFO" 'Text category
ArgDes(1) = "Es primer argumento de fecha"
ArgDes(2) = " Es el segundo argumento de fecha"
'
Application.MacroOptions _
Macro:=FunctionName, _
Description:=FunctionDescription, _
Category:=Categoria, _
ArgumentDescriptions:=ArgDes
End Sub

1 respuesta

Respuesta
1

 H    ol  a:

Pon tu función Hrst( ) en un módulo

Function Hrst(FechaInicial As Date, FechaFinal As Date)
    Hrst = (FechaInicial - FechaFinal) * 24
End Function

La macro DescribeFuncionHrsT para agregar las opciones de la función Hrst, la debes agregar de esta forma:

Private Sub DescribeFuncionHrsT()   
    Dim Categoria As String          ' Describe la categoría dela función
    Dim FunctionName As String      ' Describe el nombre de la funcion
    Dim FunctionDescription As String ' Descripción de la funcion
    Dim ArgDes(1 To 2) As String '     'Descripción de los Argumentos
    FunctionName = "HrsT"
    FunctionDescription = "Devuelve el número de horas entre 2 fechas"
    Categoria = "ExcelINFO" 'Text category
    ArgDes(1) = "Es primer argumento de fecha"
    ArgDes(2) = " Es el segundo argumento de fecha"
    '
    Application.MacroOptions _
        Macro:=FunctionName, _
        Description:=FunctionDescription, _
        Category:=Categoria, _
        ArgumentDescriptions:=ArgDes
End Sub

Entonces cuando abras el libro, tienes que ejecutar la macro DescribeFuncionHrsT, de esa forma se cargarán las opciones.


Ahora para ejecutar la función Hrst( ) tienes 2 opciones.

La primera opción sería desde otra macro:

Sub llamada()
    hora = Hrst("20/11/2016", "15/11/2016")
End Sub

Lo que hace es recibir el resultado de la función Hrst( ) en la variable hora.


La otra opción es que lo hagas desde una celda de excel, pon la siguiente fórmula en una celda de excel

=HrsT(B4,C4)

En las celdas B4 y C4 deberás tener las fechas, ejemplo:


Desde el momento que ejecutaste la macro DescribeFuncionHrsT, puedes ver en Insertar Función las opciones en la categoría "ExcelINFO:

Selecciona la función Hrst y presiona Aceptar

En la siguiente ventana podrás visualizar las opciones que se crearon para las función Hrst( )


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas