Días Laborables

Hola quisiera que me ayudes con el siguiente problema quiero registrar un fecha inicial pues y me bote la fecha final después de 180 días hábiles, pero sin contar ni sábados ni domingos ni muchos menos los festivos pues y pues trate de aher esta macro pero pues al poner la constante 180 me considera todos los días pues y los días restantes de eso 180 los completo con la suma de 24 pues y quisiera me bote la fecha exacta de los 180 días útiles pues
Gracias de antemano
Sub pru()
Dim c As Long
c = DiasLaborables("01-01-2007", "01/01/2008", Range("a3: a26 "))
End Sub
Function DiasLaborables(Fecha_Inicial As Date, Fecha_Final As Date, Optional Festivos As Range) As Long
Dim Laborables, Laborables1 As Long
Dim i As Long
Dim c As Variant
Dim F As Long
Dim ax As Long
Dim FF As Date
Dim Dias As Long
Dim esta As Boolean
esta = False
Laborables = 0
Fecha_Inicial = InputBox("Digite la fecha Inicial", "Fecha", "01-01-2008")
Dias = 180
Fecha_Final = Fecha_Inicial + Dias - 1
If Festivos Is Nothing Then
For i = Fecha_Inicial To Fecha_Final
If (i Mod 7 0) And (i Mod 7 1) Then
Laborables = Laborables + 1
End If
Next i
Else
For i = Fecha_Inicial To Fecha_Final
If (i Mod 7 0) And (i Mod 7 1) Then
esta = False
For Each c In Festivos
F = CDate(c)
If i = F Then esta = True: Exit For
Next c
If Not esta Then Laborables = Laborables + 1
End If
Next i
End If
DiasLaborables = Laborables '124
ax = 180 - DiasLaborables '56
Dim m As Integer
FF = Fecha_Final + ax + 24 '28/01/2008
MsgBox ("La Fecha Final es " & FF)
End Function

1 respuesta

Respuesta
1
No se si te servirá, pero tienes una función en Excel que hace exactamente lo mismo que tu quieres (y para que reinventar la rueda, ¿no?) ;)
DIA.LAB (fec_inicial;cant_dias_laborables;Rango donde pones los feriados)
esta devuelve el dia siguiente, por ejemplo :
F2 = 01/01/2008
F4 = 10
E7 = 01/01/2008
E8 = 06/01/2008
DIA.LAB (F2;F4;E7:E8) = 16/01/2008

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas