Programar una función de excel en visual basic

Tengo que ejecutar la siguiente fórmula desde excel pero quisiera poder hacerla en una funión pero no se como, solo se que hay que usar la línea de Function, pero no logro hacer que ejecute sin error.

Esta es la formula en excel: =DIA.LAB(H5,ENTERO(H20/((H3-H2)*24))+(H20/((H3-H2)*24)-ENTERO(H20/((H3-H2)*24)))*(H3-H2))+H3+RESIDUO(H5,1)-RESIDUO(ENTERO(H20/((H3-H2)*24))+(H20/((H3-H2)*24)-ENTERO(H20/((H3-H2)*24)))*(H3-H2),1)-H2

Que es lo que hace:

H2 - Es la hora inicial de un turno de trabajo; 08:00:00

H3 - Es la hora final de un turno de trabajo; 18:00:00

H5 - Representa la hora de una fecha especifica; 07/04/2016 08:15:00

H20 - Representa el tiempo que tardaré en dar solución al problema en horas; 35

Deseo saber cual será el día y hora laborable en que terminaré de dar solución.

Con la fformula hecha en la parte de arriba todo esta bien ya que tardo 35 horas laborables, y si empiezo en la fecha 07/04/2016 08:15:00 y en ese horario al sumar 35 horas laborables y durante solo los días laborables me tiene que dar: 12/04/2016  13:15:00 y con la fórmula todo esta bien.

Pero quiero hacerla función en visual, alguien que me pueda ayudar mil

1 respuesta

Respuesta
1

H o  l a:

Te anexo la Función:

Function CalculaFecha(hini As Range, hfin As Range, fini As Range, hora As Range)
'Por.Dante Amor
    h2 = hini.Address
    h3 = hfin.Address
    h5 = fini.Address
    hr = hora.Address
    rdo = Evaluate("=WORKDAY(" & h5 & ",INT(" & hr & "/((" & h3 & "-" & h2 & ")*24))+(" & hr & "/((" & h3 & "-" & h2 & ")*24)-" & _
                   "INT(" & hr & "/((" & h3 & "-" & h2 & ")*24)))*(" & h3 & "-" & h2 & "))+" & h3 & "+MOD(" & h5 & ",1)-" & _
                   "MOD(INT(" & hr & "/((" & h3 & "-" & h2 & ")*24))+(" & hr & "/((" & h3 & "-" & h2 & ")*24)-" & _
                   "INT(" & hr & "/((" & h3 & "-" & h2 & ")*24)))*(" & h3 & "-" & h2 & "),1)-" & h2 & "")
    CalculaFecha = rdo
End Function

Sigue las Instrucciones para una Función

  1. Abre tu libro de excel
  2. Para abrir VBa y poder pegar la función, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la función
  5. En cualquier celda utiliza la función, como cualquier otra función de excel

Los parámetros que tienes que pasarle a la función y en el siguiente orden son:

Hora de inicio

Hora de fin

Fecha de inicio

Número de horas.

Ejemplo:

En una celda pon la siguiente función:

=CalculaFecha(H2, H3, H5, H20)

Donde H2 es la hora de inicio, H3 la hora final, H5 la fecha inicial y en H20 tienes las horas.

Para que se vea la fecha y al hora en la celda donde pongas la función deberás darle el formato de celda:

dd/mm/aaaa hh:mm


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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas