Macro para contar días feriados con una constante y una variable.

Dam, necesito su ayuda para crear una macro que me desarrolle la siguiente tarea:

Necesito calcular el número de días laborables en un lapso de tiempo, pues en mi país por disposición legal existen dos tipos de fechas feriadas; aquellas que son constantes como el 01 de enero, 01 de mayo, etc. Que se celebran el día de la semana que corresponda; en cambio hay otras que se celebran un día diferente dependiendo de la siguiente variable: si cae en Lunes se celebra el Lunes, pero si cae de martes a Domingo inclusive, se celebra el Lunes inmediatamente siguiente, es decir si el 25 de Agosto que tradicionalmente es festivo si corresponde este año a Domingo su celebración y cese de actividad laboral se traslada para el Lunes 26 de Agosto.

1 respuesta

Respuesta
1

Ya revisaste la función

=DIAS.LAB(fecha1,fecha2, vacaciones)

Esta función te regresa el número de días hábiles (de lunes a viernes), y también, le puedes quitar los festivos (vacaciones)

Aquí puedes ver un ejemplo

http://office.microsoft.com/es-mx/excel-help/funcion-dias-lab-HP010062292.aspx
Saludos. DAM

Dam, muchas gracias por tu pronta respuesta, pero mi problema es como incluir los festivos cuando estos no son días fijos sino que su ubicación dentro del calendario si su cese de actividades depende de la variable que le mencionaba anteriormente? si se celebrara siempre el mismo día 25 de Agosto sin importar si cae en Lunes, martes, miércoles, domingo etc?; si cae en Lunes se celebra el mismo día Lunes, pero si cae en un día diferente se celebra el lunes inmediatamente siguiente.

Muchas gracias.

Esos días los puedes capturar en unas celdas (primero lo debes calcular manualmente), y el tercer parámetro de =DIAS.LAB(fecha1,fecha2, vacaciones) seleccionas esas celdas

Supongo que al principio del año determinan, al igual que acá en México, cuándo va a ser el descanso, entonces pones los días en las celdas.

O qué necesitas, que una macro calcule los días festivos,?

De cualquier forma tienes que poner el día en una celda y una macro calcularía el siguiente lunes.

Saludos. DAM

Dam, exactamente eso es lo que necesito; una Macro que me realice esa tarea, de ahí el título de la pregunta, la idea es que en un rango de celdas colocar los días que no se trasladan como son el 1º de enero, Jueves y viernes santo, 1º de mayo, etc y en otro rango los que se trasladan con la condicional que si cae o (cayó en tiempo pasado) en lunes se considere festivo ese mismo día, pero si cae o cayó de martes a Domingo inclusive se traslade para el lunes inmediatamente siguiente.

Muchas gracias.

Saludos

Ocupa la siguiente macro

Suponiendo que pones los días festivos, que se trasladan, en la columna C empezando en la celda C2.

Ejecuta la macro y en la Columna "D", te pone las nuevas fechas

Sub fechas()
'Por.DAM
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
    dia = Weekday(Cells(i, "C"))
    Select Case dia
        Case 1: Cells(i, "D") = Cells(i, "C") + 1
        Case 2: Cells(i, "D") = Cells(i, "C")
        Case 3: Cells(i, "D") = Cells(i, "C") + 6
        Case 4: Cells(i, "D") = Cells(i, "C") + 5
        Case 5: Cells(i, "D") = Cells(i, "C") + 4
        Case 6: Cells(i, "D") = Cells(i, "C") + 3
        Case 7: Cells(i, "D") = Cells(i, "C") + 2
    End Select
Next
End Sub

Saludos.DAM
Si es lo que necesitas.

Lo dicho DAM, con expertos como tú es una lástima que la puntuación máxima sean tan solo 5 estrellas, funciona más que perfecto. Mil Gracias.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas