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 respuesta

Respuesta
1
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.
Aquí tienes varias formas
http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/1568448/ayuda-con-funcion-dias-lab
Funcion en vba
http://jldexcelsp.blogspot.com/2009/06/la-funcion-diaslab-version-mejorada.html
Otra mas
http://accessvbafaq.mvps.org/item.asp?pagina=69
Por ultimo
http://www.ayudaexcel.com/foro/showthread.php?t=11457&page=1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas