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 FunctionSi 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