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
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 de Alvaro Silveira
1
Buenas noches, necesito realizar la misma consulta DÍAS LABORALES pero en Access, donde ingreso un campo con la fecha inicial y quisiera calcular la fecha final pasado un número determinado de días hábiles (de Lunes a Viernes, sin incluir festivos).. Gracias... - John Deiner Corrales Usaquen