Te presento la última versión con tres ejemplos de la impresión, bueno en realidad las tres empresas.
Tiene dos macros que son:
Cambiar_Año crea el calendario y pone los festivos.
Imprimir Pone los dos festivos locales, imprime el calendario y los quita.
Los festivos:
En la columna Y tiene una tabla de 27 filas, en las cuales la 2, la 15 y la 28 que son las que tienes los textos se toman como referencia para colorear los festivos correspondientes, he dejado espacio para 12 fiesta nacionales y 12 autonómicas. la fecha escríbela si es fija con formula como están las roja o en formato fecha.
Como se rellena el calendario:
Explicación de como se rellena estas tablas de los 12 meses del año:
Se basan en tablas de 7 columnas (los días de la semana) y 6 filas que son las semanas que puede abarcar un mes de 30 o 31 dias.
Si el 1 es domingo de la primera semana el 30 sera lunes de la sexta semana
La tabla se rellena a partir de la primera casilla va sumando uno hasta la casilla 42.
Si el mes empieza en lunes la primera casilla es un 1 y la ultima 42
Si el mes empieza en martes la primera casilla es un 0 y la ultima 41
Si el mes empieza en miércoles la primera casilla es un -1 y la ultima 40 y así hasta el domingo.
Excepto Enero y Marzo el resto de mese pueden calcular sus días en función de los valores de otro mes.
Calcula el valor del primer lunes de la semana del 1 de enero y el lunes de la semana del 1 de marzo se completa el calendario
Lo que se hace a continuación es ocultar los números de las casillas menores a 1 y mayores al numero de días que tenga el mes.
Como su busca una fecha determinada.
Primero necesitamos saber el mes para saber donde esta la primera celda de la tabla de ese mes. Por ejemplo busco el 01/01/2019
Enero se que la primera celda A12 o lo que es lo mismo fila 12 Columna 1.
Para el año 2019 esta celda vale 0, a este valor le sumo el día que quiero marcar que es 1
El valor de la suma anterior lo sumo al numero de la columna y el resultado es 2.
Ahora se que el 1 de enero esta en la fila 12 columna 2 es decir B12
Ahora busco 12/10/2019
Octubre se que la primera celda A39 o lo que es lo mismo fila 39 Columna 1.
Para el año 2019 esta celda vale 0, a este valor le sumo el día que quiero marcar que es 12
El valor de la suma anterior lo sumo al numero de la columna y el resultado es 13
Como este valor es mayor o igual a 7 paso a la semana siguiente es decir Fila 40 suma 6
Ahora se que el 12 de octubre esta en la fila 13 columna 6 es decir F40
He realizados algunos retoques de formato en los textos porque no quedaban bien.
Me parece que esta casi perfecto.
Ya me contaras como lo valoras y si tienes alguna pregunta puedes escribir a mi correo:
[email protected]
Saludos.
\\//_