Fechas

Tengo un campo llamado F_Radicación y a esta fecha tengo que sumarle 5 días hábiles laborales (Sin incluir Festivos, sábados y domingos) y a esta nueva fecha le llamamos F_Parcial, pero tengo el problema que si esta F_Parcial me cae en sábado me la esta mostrando y no debe ser así tiene que caer en lunes, ya que la F_Parcial debe ser día laboral, y la otra es que no me cuenta los festivos, ya tengo una tabla festivos con los siguientes campos Día, Mes, Anio. Pero no se como hacer el código.
Te pido ayuda y te envío el código que tengo actualmente
Dim d As Integer
d = 5
F_Vto_Parcial = F_Radicacion
While d > 0
If (DatePart("w", F_Vto_Parcial) > 1 And DatePart("w", F_Vto_Parcial) < 7) = True Then
d = d - 1
End If
F_Vto_Parcial = F_Vto_Parcial+1
Wend

1 respuesta

Respuesta
1
A continuación te detallo el código necesario para hacer lo que querías. Si tienes alguna duda sobre alguna función o comando en concreto de los que utilizo, en la ayuda podrás encontrar toda la información necesaria para comprenderlo y si no, preguntame y estaré encantado de aclara tus dudas.
Por otro lado, para comprobra lo de los festivos, he partido de la siguiente premisa: La tabla con los días festivos se llama "MaestroFestivos". En ella existe un campo que se llama "FechaFestivo" de tipo Fecha Corta. En ese campo es donde pongo la fecha correspondiente a días festivos. Si no lo defines igual a mi, deberás cambiar el código que hace referencia a esta tabla y campo o no te funcionara.
No dudes en contactarme de nuevo si tienes algún problema. Abajo tienes el código.
Un saludo y suerte en tu desarrollo.
Óscar L.M.V.
p.d. -> No olvides puntuar, como creas oportuno, y finalizar la pregunta una vez veas que la soluciona.
--------------------------
Sub EventoEnCuestion ()
Dim FechaTrabajo As Date
Dim NDias As Integer
NDias = 5
FechaTrabajo = CVDate(F_Radicacion)
Do
'Sumamos un día a la fecha
FechaTrabajo = DateAdd("d", 1, FechaTrabajo)
'Comprobamos que el día de la semana resultante no sea Sábado ni Domingo
If WeekDay(FechaTrabajo, vbMonday) < 6 Then
'Comprobamos que el día resultante tampoco sea festivo
If DCount("FechaFestivo", "MaestroFestivos", "CStr(FechaFestivo) = '" & CStr(FechaTrabajo) & "'") = 0 Then
'Si no es festivo, ni Sabado, ni Domingo, restamos 1 al numero de dias total a sumar
NDias = NDias - 1
End If
End If
Loop While NDias > 0
F_Parcial = CStr(FechaTrabajo)
End Sub
----------------------------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas