Para ver como activar, utilizar y autorizar Macros en tu ordenador ve el siguiente post: Tip: Macros, que son y como activar y ejecutar Macros en excel.
Copiamos todo el siguiente macro en un módulo de Excel y listo.
Function diaslab(fechai As Date, fechaf As Date, Optional feriados As Range)
Dim diafer As Range 'se declara las celdas en el rango de feriados
Dim semanalab As Integer
semanalab = 5 'cuantos dias laborables a la semana hay
On Error Resume Next 'si el rango esta vacio continuar
For Each diafer In feriados 'para cada celda en el rango
cadena = cadena & diafer & ";" 'se construye una cadena con las fechas
Next diafer
Do 'repetir la siguiente instruccion
If Weekday(fechai, vbMonday) <= semanalab Then 'si la fecha inicial + y es laboral
If InStr(cadena, fechai) = 0 Then 'si la fecha inicial + y no esta en los feriados
x = x + 1 'sumar 1 al contador de dias laborales
End If
End If
fechai = CDate(fechai + 1) 'sumamos 1 dia cada vez hasta llegar a fecha final
Loop Until CDate(fechai) > CDate(fechaf) 'cuando fechai sea mayor que fechaf detener
diaslab = x 'escribimos el resultado
End Function
Si queremos calcular en base a 6 dias laborales por semana, le sustituimos en la sexta linea el número 5 por el número 6 y ya podemos realizar lo que necesitamos.
No hay comentarios:
Publicar un comentario