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
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 de Eduard Caballero
1