Tienes que hacer una tabla En éste caso Fiestas con un campo fecha y otro descripcion, metes los festivos del año, introduces las funciones en un módulo y luego llamas a la función DiasLaborables Public Function DiasLaborables( _ ByVal FechaDesde As Date, _ ByVal FechaHasta As Date) _ As Long Dim datAuxiliar As Date Dim lngDiaSemana As Long Dim lngDias As Long If FechaHasta < FechaDesde Then datAuxiliar = FechaDesde FechaDesde = FechaHasta FechaHasta = datAuxiliar End If For datAuxiliar = FechaDesde To FechaHasta lngDiaSemana = DatePart( _ "w", _ datAuxiliar, _ vbMonday) 'vbMonday considera el lunes como día Nº 1 Select Case lngDiaSemana Case 1 To 6 'lunes a Sabado If EsDiaLaboral(datAuxiliar) Then lngDias = lngDias + 1 End If End Select Next datAuxiliar DiasLaborables = lngDias End Function Public Function EsDiaLaboral( _ ByVal Dia As Date) _ As Boolean Dim strFecha As String Dim varPrueba As Variant strFecha = "#" _ & CStr(Month(Dia)) _ & "/" _ & CStr(Day(Dia)) _ & "/" _ & CStr(Year(Dia)) _ & "#" varPrueba = DLookup("Fecha", "Fiestas", "[Fecha] =" _ & strFecha) 'Si encuentra la fecha en la tabla devuelve esa fecha 'que se asigna a la variable varPrueba 'Si no existe la fecha varPrueba valdrá Null 'IsNull devuelve True o False EsDiaLaboral = IsNull(varPrueba) End Function Saludos Iñaki