Y porque no usas la funcion Weekday.
Sintaxis: WeekDay(Fecha, Primer_dia_de_la_Semana)
Descripcion: Devuelve el numero del dia apartir de una fecha; teniendo en cuenta el primer dia de la semana que pasas en el segundo argumento.
Ejemplo:
Código:
Dim numDia As Integer
numDia = WeekDay(Date, vbMonday) ' Calcula el numero de dia de la fecha del sistema, teniendo en cuenta que el primer dia de la semana es Lunes (vbMonday).
' Por ejemplo: hoy 26/04/2006, es Miercoles, la funcion devuelve 3
Msgbox numDia
Eso para saber si es sabado o domingo, con lo de los dias festivos, en mi opinion tendrias que crear una tabla con las fechas que son festivas, y mediante una consulta o una busqueda comparar la fecha que tengas con las que estan en la tabla, y en base a eso hacer lo que sea necesario hacer.