Macro que calcule días laborales entre dos fechas

Me ayudarían con una macro en excel 2007, que calcule los días laborales entre dos fechas.
Actualmente tengo está función; pero me da días naturales y requiero días laborales.
Gracias.
Sub cuenta_dias()
Dim i As Integer
Dim y As Integer
i = CInt(InputBox("Ingrese la cantidad de filas de la hoja 'Plan de trabajo'"))
y = CInt(InputBox("Ingrese la cantidad de filas de la hoja 'Hoja 1 (SIEBELs)'"))
Dim fila_y As Integer
Dim fila_i As Integer
fila_i = 2
fila_y = 2
'columna a, fila x en el rango columna t fila 2 - y
For Each celda In Hoja4.Range(Hoja4.Cells(2, 1), Hoja4.Cells(i, 1))
For Each celdita In Hoja1.Range(Hoja1.Cells(2, 20), Hoja1.Cells(y, 20))
If celda.Value() = celdita.Value() Then
Hoja1.Cells(fila_y, 85) = -1 * DateDiff("d", CDate(Hoja4.Cells(fila_i, 2)), CDate(Hoja1.Cells(fila_y, 15)))
End If
fila_y = fila_y + 1
Next celdita
fila_y = 2
fila_i = fila_i + 1
Next celda
End Sub
1

1 Respuesta

98.250 pts. Usuario a nivel Intermedio/Avanzado de Excel
Es mucho más fácil usar una función predeterminada de excel
Existe la funcion =DIAS.LAB(fechainicial;fechafinal)
http://www.funcionesexcel.com/funciones/DIAS-LAB.htm
http://office.microsoft.com/es-es/excel-help/dias-lab-HP005209190.aspx
No la puedo usar por lo siguiente: el libro de excel tiene dos hojas, en la hoja1, está compuesta por estadísticas que cada lunes exporto de un sistema, entre ellas tiene un número de registro y la fecha cuando fue creado
En la hoja2, tiene dos campos, en uno el numero de registro y yo ingreso la fecha en que el técnico va a atender ese registro.
Por esta razón, cada semana exporto nueva información y la que ya tenía, por lo que los registros va a ser dinámicos y no estarán en la misma posición de línea.
Es por esta razón que debo usar la macro.
Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas