Cómo hacer un calendario automático en Excel

Última actualización el 29/03/2025
Tiempo de leer: 5 minutos

Cómo crear un calendario automático con Excel donde los colores de fines de semana y festivos cambian automáticamente para cada mes. Este artículo le detallará paso a paso cómo construirlo.

Pero si necesitas un calendario con registros guardados para cada mes, Vaya a esta página para descargar el archivo.

Calendario de demostración Excel

Paso 1: agregue los nombres de los empleados

En la columna A, escriba los nombres de sus empleados.

Paso 2: agregue un menú desplegable como objeto.

Aunque creando una lista desplegable En Excel es simple; el enfoque estándar no admite la ejecución de macros. Nuestro objetivo es activar una macro cada vez que se selecciona un nuevo mes de la lista. Esta funcionalidad no es posible con las listas desplegables normales. En su lugar, debemos usar un objeto ActiveX, que se puede encontrar en Pestaña desarrollador de Excel.

Agregar lista desplegable ActiveX

Con el mouse, haga clic y estire para que su objeto "Menú desplegable" aparezca en su hoja de cálculo.

Paso 3: Crea la lista mensual

Ahora crearemos la lista de meses en algún lugar de nuestro libro de trabajo (en una columna bastante distante).

Calendario_automático_4

No pierda el tiempo escribiendo meses uno tras otro, el controlador de copia lo hace por usted.

A continuación, debe vincular el objeto del menú desplegable a una celda del libro. para recuperar el valor seleccionado.

  1. Seleccione su objeto desplegable
  2. Haga clic con el botón
  3. Seleccione Formato de control
Opción para el botón desplegable

Se abre el siguiente cuadro de diálogo

  1. Seleccione la pestaña Control (la última)
  2. Seleccione el rango de mes (en este ejemplo AH1:AH12
  3. En el estilo de Enlace de celda, seleccione A1 (explicación, justo debajo)

¿Qué es el enlace celular?

  • Si selecciona mayo, el quinto elemento de la lista, el valor en A5 será 1
  • Y si seleccionas septiembre el valor en A1 será 9
  • ...

Paso 5: Menú desplegable por años

Reproduzca las mismas manipulaciones para tener un menú desplegable para los años.

  • Crea una columna durante años.
  • recuadro un nuevo menú desplegable
  • Vincula la columna del año con el nuevo menú desplegable
  • Asociar el menú desplegable con celda A2

Paso 6: Crea la fecha según el mes y año seleccionados

Ahora crearemos una fórmula que recuperar las celdas vinculadas A1 (por meses) y A2 (por años) regresar el primer día del mes.

Para ello, utilizaremos el Función de fecha con el contenido de las celdas vinculadas.

  • Para A1, la celda del mes, es muy sencillo; Simplemente toma los datos tal como están en la fórmula.
  • Para A2, el menú desplegable devolverá los valores 1, 2, 3, ... correspondientes al valor seleccionado. Para que este valor coincida con un año se debe sumar un valor fijo. Por ejemplo, agregue 2014 a la celda vinculada para crear el año 2015.

La fórmula es por lo tanto

=FECHA(A2+2016,A1,1)

Paso 7: Crea los demás días del mes.

Para calcular los demás días, la fórmula es más sencilla. Simplemente agregue 1 a la celda anterior y copie esta fórmula en el rango de datos C6 a AF6

= B6 + 1

Paso 8: cambia el formato de fecha

En este paso cambiaremos el formato de las fechas para que el día aparezca en letras y números

  • Selecciona todas tus fechas de la línea 6 (de B6 a AF6)
  • Abra el cuadro de diálogo Formato de número (método abreviado de teclado Ctrl + 1 or Inicio>Formato numérico>Otros formatos numéricos ...
  • Seleccione la categoría Personalizada e ingrese el dd dd formato en el cuadro Tipo
Cambiar el formato de las fechas.

Paso 9: cambia la orientación del texto

Ahora cambiaremos la orientación de las fechas. para mostrarlos verticalmente.

  • Seleccione B6: AF6
  • Activar el menú Inicio
  • Orientación
  • Girar texto hacia arriba
Menú para rotar la redacción.

Y para finalizar el trabajo, ajusta el tamaño de las columnas de B a AF

  1. Seleccionar columnas B: AF
  2. Haga clic con el botón en el encabezado de la columna
  3. Elegir Ancho de columna
  4. Establezca el ancho de columna en 2.5

El calendario avanza muy bien.. Al cambiar los valores en los menús desplegables, verá los días del mes seleccionado.

Paso 10: formatea tu calendario

Agregar bordes y color a tu calendario.

Paso 11: agrega un título dinámico

Ahora crearemos un título que se adaptará al mes y año seleccionado.

Primera y última fecha del mes.

  • La fórmula para el primer día es: =FECHA(A2+2016,A1,1)
  • La fórmula para el último día del mes es: =DATE(A2+2016,A1+1,1)-1

Fórmula para título dinámico

Debemos insertar estas 2 funciones en una función TEXTO para devolver Una cadena y una fecha formateada en la misma celda.

="Período desde "&TEXT(DATE(A2+2016,A1,1),"dd mmmm aaaa") &" hasta "&TEXT(DATE(A2+2016,A1+1,1)-1,"dd mmmm aaaa")

Paso 12: Cambia el color de fines de semana y festivos.

Para cambiar los colores de las fiestas, usaremos formato condicional y especialmente métodos con fórmulas personalizadas. Crearemos 2 reglas.

  • uno para los fines de semana
  • otro para los días festivos.

Regla para los fines de semana

  1. Seleccione su cuenta en B6: AF13 rango de datos
  2. Cree una nueva regla de formato condicional (Inicio>Formato condicional>Nueva regla)
  3. Seleccione la opción  Utilice una opción de fórmula para determinar a qué celdas se aplicará el formato a
  4. Escribe la formula =DÍAS DEL MEDIO(B$6,2)>5
  5. Cambiar el color de relleno (aquí de naranja)

Muy, muy, MUY IMPORTANTE ❗❗❗ Solo hay un $ en la fórmula después de la columna B

Regla para vacaciones

Aquí necesitamos integrar en nuestro libro de trabajo la lista de días festivos de su país. Al hacer clic en este enlace, encontrarás las fórmulas para calcular los días festivos de Estados Unidos.

Estados Unidos Día festivo 2019

La fórmula para esta regla es diferente al cálculo anterior. Aquí usaremos el Función COUNTIF

  1. Selecciona todos tus datos (celdas B6:AF13)
  2. Cree una regla de formato condicional (Inicio>Formato condicional>Nuevas reglas)
  3. Seleccione Use una fórmula para determinar qué celdas formatear
  4. Escribe la formula =CONTAR.SI(¡Días festivos!$B$2:$B$4,B$6)>0
  5. Cambiar el color de fondo (rojo)

revisa tus reglas

Abra la administrador de reglas condicionales (Inicio>Formato condicional>Administrar reglas), puede ver las 2 reglas creadas en su hoja de cálculo.

No olvides seleccionar Esta hoja de cálculo desde el primer menú desplegable para ver todas las reglas.

Reglas de formato condicional

Paso 13: Ocultar las últimas columnas por Macro

Como no todos los meses tienen el mismo número de días, ocultaremos las columnas que no pertenecen al mes seleccionado.

Se dan todas las explicaciones sobre el código. en este articulo

El programa leerá las columnas AD, AE y AF para verificar que el valor del mes en estas celdas sea igual al valor contenido en A1 (valor del mes seleccionado). En caso contrario, la columna queda oculta.

  1. Presione Alt + F11 para abrir el Editor de Visual Basic
  2. Desde el recuadro menú, seleccione Módulo
  3. Copia y pega el siguiente código en tu módulo.

Sub Hide_Day()
Dim Num_Col mientras
'Esta instrucción borra el contenido de las celdas de su calendario.
Rango("B7:AF13").Borrar contenido
Para Num_Col = 30 a 32
'Prueba si el mes de las celdas (fila 6) es el mismo que el mes seleccionado (celda A1 o celdas(1,1))
Si Mes (Celdas (6, Num_Col)) >= Celdas (1, 1) Entonces
Columnas (Num_Col). Ocultas = Verdadero
otro
Columnas(Num_Col).Ocultas = Falso
Si terminar
Siguiente

Para finalizar el trabajo aún nos queda vincular los 2 menús desplegables con la macro. De esta manera, con cada nueva selección, se lanzará la macro..

  1. Seleccione el cuadro combinado
  2. Haga clic derecho sobre él.
  3. Elegir Asignar macro
  4. Seleccione el nombre de la macro (Hide_Day)
  5. Haga clic en Aceptar
  6. Realice la misma operación nuevamente para el segundo menú desplegable.

Ahora, cada vez que seleccione un mes o año en los menús desplegables, su calendario se actualizará y las columnas se ocultarán (o mostrarán) automáticamente.

Calendario automático terminado

93 Comentarios

  1. Mike
    24/03/2025 a las 17:39

    ¿Cómo puedo agregar eventos al calendario sin que aparezcan en el próximo mes cuando cambio el mes a través del menú desplegable?

    Responder

  2. Ahmet Karaaslán
    18/03/2025 a las 20:20

    Emeğinize sağlık hocam muhteşem bir anlatım olmuş bu örneği ahmetkaraaslan4615@gmail.com
    adresina gönderilebilir misiniz

    Responder

    • Frédéric LE GUEN
      24/03/2025 a las 04:23

      Buen hallazgo. Estoy trabajando para solucionar el problema.

      Responder

  3. Ahmet Karaaslán
    18/03/2025 a las 20:14

    Esta es la razón ahmetkaraaslan4615@gmail.com
    adresina gönderilebilir misiniz

    Responder

  4. Jamal
    17/02/2023 a las 17:20

    Hola, el único problema que tengo está justo al final, por ejemplo, si lleno la celda para uno de los días de febrero y luego cambio el mes a marzo, no puedo ver el contenido que quiero. Sin embargo, después de hacer clic en marzo y querer volver a febrero, todo mi contenido desaparece, lo cual no quiero. Entonces, básicamente, si completo información para cualquier mes y hago clic y vuelvo a ese mes, todo lo que lo completé desaparece. ¿Hay alguna forma de superar esto?

    Responder

  5. Allen
    17/02/2023 a las 15:13

    ¿Mis días no cambian? ¿Qué hice mal?

    Responder

  6. konstie
    24/11/2022 a las 18:38

    así que he llegado al punto de destacar los días festivos.
    ahora quiero una columna diferente para contar cuántos días laborables tiene cada empleado. Usé el código =CONTAR.SI(D10:AH10; "O") y marco con una "O" cada día laboral de cada persona. pero ¿qué pasa si quiero contar los fines de semana y días festivos laborables por separado? ¿Para que cuando complete el calendario pueda ver cuántos domingos y sábados tiene que trabajar cada empleado?

    Responder

  7. Celine Moutic
    17/11/2022 a las 19:48

    Hola Frédéric y gracias por este tutorial tan útil!!
    Solo tengo un pequeño problema con el que espero que puedan ayudarme >> Cuando quiero agregar pequeñas "x" al mes de agosto para un empleado específico, por ejemplo, veo que las "x" también aparecen en todos los demás meses también. ¿Cómo podemos restringir que la "x" sólo se presente en el mes de agosto?

    Muchas gracias de antemano !!

    Responder

    • Frédéric LE GUEN
      20/11/2022 a las 10:31

      No entiendo tu pregunta porque el calendario usaba una sola hoja de trabajo. Entonces, ¿cómo puedes tener "x" para otros meses?

      Responder

      • Vicky
        17/01/2023 a las 10:42

        Las "x" probablemente sean el texto que indica que un empleado trabaja el 1 de agosto, por ejemplo. ¿Cómo podemos hacer que esa información siga la fecha específica y solo aparezca en el celular del empleado del 1 de agosto?
        ahora todo lo que escribas en un mes permanecerá allí durante todos los meses. Necesitamos guardar el mes y pasar al siguiente comenzando en blanco, ¿es posible?

  8. Aldrin C
    07/08/2022 a las 06:11

    Gracias por esto. Pero, ¿cómo puedo cambiar el fin de semana? Aquí está Arabia Saudita, nuestro fin de semana es viernes y sábado.

    Responder

    • Frédéric LE GUEN
      18/08/2022 a las 14:45

      Ya veo, cambie el argumento DÍA DE LA SEMANA a 5 o 6 (no recuerdo exactamente) y funcionará

      Responder

  9. Hiren
    07/07/2022 a las 11:10

    Gracias por el tutorial. Logré terminar todos excepto los últimos 2 pasos... no pude entender correctamente cómo hacerlo. a....

    Responder

  10. estilo
    12/05/2022 a las 21:51

    Diré que la macro no funciona si no estás seguro de lo que estás creando. Especialmente porque no puedes ver el libro completo que están usando. Me salté la macro por completo y puse el texto en blanco.

    Responder

  11. Lisa Nieth
    10/02/2022 a las 18:05

    Gracias por el tutorial. Pude crear el calendario, pero me gustaría que cada celda tuviera un cuadro desplegable con una lista de opciones para que los empleados eligieran. Si hago la Validación de datos y creo la lista de celdas en el calendario, funciona. Sin embargo, si ingreso una opción de la lista para el 10 de febrero, esa selección se mantiene para el día 10 de cada mes. ¿Cómo puedo hacer para que mi lista en las celdas del calendario no se repita en otros meses? No soy un experto en Excel y no sé cómo resolver esto sin ayuda.

    Responder

    • Asdfy
      14/03/2022 a las 01:54

      Sí, porque el calendario está en el mismo lugar... cada vez que cambias el mes en el menú desplegable, se activa una macro que borra los datos y cambia el mes según tu elección, pero en realidad sucede en el mismo lugar.
      Puedes intentarlo así... Haz un calendario para todo el año, después simplemente cambia el código así.

      Sub Hide_Day()
      Dim Num_Col mientras

      Num_Col = 365 'La cantidad de columnas necesarias para todos los meses del año

      Para Num_Col = 2 To 365 'supongo que el calendario comenzará desde B. Necesitará una columna para los nombres de los trabajadores

      Si Mes(Celdas(6, Num_Col)) = Celdas(1, 1)
      Columnas(Num_Col).Ocultas = Falso
      otro
      Columnas (Num_Col). Ocultas = Verdadero
      Si terminar
      Siguiente
      End Sub

      Responder

  12. Shashi
    07/11/2021 a las 06:41

    la macro no funciona. Por favor ayuda

    Responder

  13. Hisham
    15/09/2021 a las 15:34

    Muchas Gracias

    Responder

  14. Lilian
    27/08/2021 a las 15:20

    Gracias por esto, muy claro y logré crear el calendario. Sin embargo, ¿cómo puedo evitar que los datos introducidos en el campo desaparezcan una vez que cambia el mes? ¿Ya tienes los datos para compartir?

    Responder

    • Frédéric LE GUEN
      01/09/2021 a las 14:12

      De hecho, su pregunta es más "cómo guardar el valor de cada mes". Y la respuesta es "no es posible con Excel". Eche un vistazo a Microsoft Planner en su cuenta de Office 365.

      Responder

  15. Malena
    06/07/2021 a las 12:13

    Hi
    digamos que el calendario comienza el día 28 y termina el día 27. Ex. del 28 de febrero de 2021 al 27 de marzo de 2021, pero la fila continúa hasta el 30 y quiero ocultar los días 28, 29 y 30.
    ¿Es el mismo código o tengo que cambiar un poco?

    Responder

  16. A
    07/11/2020 a las 13:59

    Gran guía. Sé que esta es una publicación anterior pero tengo problemas con el conteo y las fechas de los días festivos. Estoy tratando de hacer un calendario para programar durante los días críticos y ver rápidamente si el tiempo libre de los empleados durante las vacaciones entra en conflicto entre sí.

    Responder

  17. haris awan
    03/11/2020 a las 22:53

    Hola, tengo dificultades con la codificación de macros. muestra el error *ERROR DE COMPILACIÓN* ERROR DE SINTAXIS
    ¿Alguien puede ayudarme con ello?

    Responder

  18. Exar
    26/11/2019 a las 01:46

    Hola,
    Gracias por este tutorial.
    ¿Le importaría compartir cómo guarda los datos mes a mes sin que se borre?

    Esta plantilla resulta extremadamente útil con la capacidad de retener datos.
    Gracias de nuevo.

    Responder

    • Frédéric LE GUEN
      26/11/2019 a las 15:02

      Hola, gracias por apreciar mi artículo, pero no puedo responder a tu mensaje así. Es un desarrollo completo aquí porque si desea mostrar el resultado anterior, eso significa que cada celda tiene fórmulas para recopilar el resultado anterior (esta fórmula no es fácil y depende del contexto de cada hoja de trabajo). Y por supuesto, si actualizas un valor en el calendario, eliminarás la fórmula. Espero que entiendas la complejidad de un proyecto de este tipo. Puedo pero es un desarrollo (2 o 3 días para mí)

      Responder

      • Hussain
        31/12/2019 a las 01:02

        Estimado Sr. Frédéric LE GUEN

        Gracias por esta hermosa explicación.
        Seguí tu explicación paso a paso y el resultado fue hermoso, pero cuando vuelvo a un mes en el que los días son 30 días o 31 días, los días quedan ocultos.
        Por favor, si es posible, adjunte el archivo del calendario. Te lo agradeceré.

      • Frédéric LE GUEN
        03/01/2020 a las 06:37

        Seguramente hay un problema con tu macro. Probablemente la fila de tus días no sea la que se menciona en el código.
        Echa un vistazo a este enlace comprender el código y también personalizarlo.
        No, no comparto el archivo. No es la forma de aprender a usar Excel.

  19. thuy
    17/10/2019 a las 04:49

    He realizado cambios en el código VBA para asegurarme de que se ejecute correctamente como se indica a continuación.

    Sub Hide_Day()
    Dim Num_Col mientras
    'para mostrar todas las columnas
    Columnas.EntireColumn.Hidden = Falso
    'Esta instrucción limpia el contenido de las celdas de tu calendario.
    Rango("B7:AF13").Borrar contenido
    Para Num_Col = 30 a 32
    'Prueba si el mes de las celdas (fila 6) es el mismo que el mes seleccionado (celda A1 o celdas(1,1))
    Si Mes (Celdas (6, Num_Col)) > Celdas (1, 1) Entonces
    Columnas (Num_Col). Ocultas = Verdadero
    otro
    Columnas(Num_Col).Ocultas = Falso
    Si terminar
    Siguiente
    End Sub

    Responder

  20. frederick wright
    15/10/2019 a las 11:47

    En base a esto, ¿puedo completar los campos a continuación según la selección del mes?
    Además, ¿puedo usar una búsqueda virtual o una coincidencia de índice en otra pestaña para recoger las entradas a pesar de que este calendario sea dinámico?

    Responder

  21. gatito
    05/09/2019 a las 09:42

    ¡Hola!
    ¡Gracias por esto, es realmente útil! 🙂
    Sin embargo la macro no me funciona. Aparece un mensaje de error (error de sintaxis) para esta fila:

    Si Mes (Celdas (6, Num_Col)) >= Celdas (1, 1) Entonces

    ¿Me puedes ayudar? ¿Qué tengo que hacer?

    Responder

    • Frédéric LE GUEN
      07/09/2019 a las 10:15

      Hola,
      He escrito este artículo toda la explicación del código. En función de la construcción de tu calendario, debes adaptar algunos argumentos (como el número de fila o el número de columna)

      Responder

    • rubú
      26/06/2020 a las 10:30

      ¡Hola!
      He tenido el mismo problema. La solución es la siguiente.

      Si mes (celdas (6; Num_Col)) = celdas (1,1) entonces

      Eso funciona

      Responder

  22. Deepika
    13/08/2019 a las 07:58

    Hola, ¿podrías compartir también el código para conservar los datos que se ingresaron en las celdas cuando se cambian los meses?

    Sería muy útil !!

    Responder

    • Frédéric LE GUEN
      21/08/2019 a las 07:31

      No, porque este es un proyecto completo con muchas líneas de código. Además, cada situación es única y no puedo escribir un código "estándar".

      Responder

  23. Eteruz Medas
    29/07/2019 a las 17:27

    Hola Frederic, no pude hacer que la macro ocultara y mostrara las columnas (volví a verificar y no pude encontrar el problema). Tampoco puedo retener los detalles de los meses individuales (cada vez que vuelvo al mes anterior, la macro limpia el contenido). ¿Cómo se puede cambiar eso?

    Responder

    • Meagan Lampton Gregorio
      16/09/2019 a las 15:22

      Estaba teniendo un problema similar y cambié mi código en la línea 7 a esto:

      Si día (celdas (6, Num_Col)) <= "29" entonces

      funciona muy bien

      Responder

      • Meagan Lampton Gregorio
        16/09/2019 a las 15:53

        En realidad, lo que debes hacer es cambiar ">=" a ">" en la línea 7.

  24. adriano rodrigues
    01/07/2019 a las 17:03

    excelente

    Responder

  25. Varun
    26/06/2019 a las 00:29

    Hola, excelente video!! Me gustaría mantener las celdas completas cada mes y no tener claro el contenido después de seleccionar un nuevo mes/año. ¿Es eso posible? Si es así, ¿puede describirlo? gracias de antemano

    Responder

    • Kate
      08/07/2019 a las 05:14

      También tengo el mismo problema con este. Cuando escribo cualquier celda durante el mes pero el contenido anterior sigue ahí. Por favor ayuda. Gracias de antemano.

      Responder

  26. khomol
    13/06/2019 a las 21:14

    Hola. Excelente publicación, muy clara y fácil de seguir, incluso la he personalizado según mis necesidades. Pero necesito ayuda para crear una versión de hoja de cálculo de Google, ¿alguna sugerencia sobre cómo hacerlo?

    Responder

    • Frédéric LE GUEN
      13/06/2019 a las 21:32

      Gracias, pero Excel Online es mejor que la hoja de Google y también es gratuito.
      Todos los pasos son posibles con Excel Online excepto el menú desplegable.

      Responder

  27. Lauren
    12/06/2019 a las 10:18

    Hola,

    ¿Hay alguna forma de mantener los datos solo en ese mes actual? Lo estoy usando para realizar un seguimiento de los días de enfermedad de los empleados y cuando cambia el mes, trae los datos de, digamos, abril a mayo.
    Gracias por su atención.

    Lauren

    Responder

    • Frédéric LE GUEN
      12/06/2019 a las 10:37

      Hola Lauren, Sí, es posible, pero es un desarrollo (macro y fórmulas) y lleva tiempo.
      Porque, no sólo debes gestionar cómo guardar cada día de baja y la forma de visualizarlos en función del mes seleccionado sino que también debes gestionar una interfaz para actualizar o eliminar datos anteriores.

      Responder

      • arrendajo
        29/07/2019 a las 16:15

        ¡También necesito la misma función! ¡Haga un tutorial para guardar la información en el menú desplegable de cada mes!

    • Dante
      26/06/2019 a las 03:33

      El calendario es brillante. Pero también deseo tener esta función para poder realizar un seguimiento de las bajas por enfermedad/vacaciones. Básicamente conserva los datos del mes anterior.

      Responder

  28. WINSTON T CUISÓN
    08/06/2019 a las 09:56

    ¿Hay alguna forma de guardar los datos anteriores cuando cambio a otro mes? Por alguna razón, cuando vuelvo al mes anterior, perdí todos los datos. ¿Hay alguna forma de arreglar esto?

    Responder

    • Frédéric LE GUEN
      09/06/2019 a las 15:07

      Sí, es posible pero es un proyecto real con desarrollo. Uno o 2 días para mí.

      Responder

      • Tina
        05/11/2019 a las 13:08

        Gracias por crear este calendario... ¿ha encontrado la manera de guardar los datos del mes anterior al seleccionar el mes siguiente?

        Por favor guía

      • Frédéric LE GUEN
        26/11/2019 a las 15:10

        Hola, gracias por apreciar mi artículo, pero no puedo responder a tu mensaje así. Es un desarrollo completo aquí porque si desea mostrar el resultado anterior, eso significa que cada celda tiene fórmulas para recopilar el resultado anterior (esta fórmula no es fácil y depende del contexto de cada hoja de trabajo). Y por supuesto, si actualizas un valor en el calendario, eliminarás la fórmula. Espero que entiendas la complejidad de un proyecto de este tipo. Puedo pero es un desarrollo (2 o 3 días para mí)

  29. Gerrit
    31/05/2019 a las 13:45

    ¿Puedo descargar este calendario por favor?

    Responder

    • Frédéric LE GUEN
      31/05/2019 a las 21:23

      Hola, fue posible descargarlo con Paypal hace mucho tiempo pero era demasiado difícil gestionar la descarga automática con su plataforma. Entonces ahora no es posible descargar el archivo. Lo siento

      Responder

    • Lorena
      07/06/2019 a las 14:55

      Cuando ingreso texto en un mes, se transfiere al mes siguiente. ¿Cómo evito que esto suceda?

      Responder

      • Frédéric LE GUEN
        07/06/2019 a las 17:51

        No entiendo cuando dices "Cuando ingreso texto en un mes". No es necesario que ingrese texto, solo seleccione el mes en la lista desplegable

  30. sandeep kothari
    21/04/2019 a las 08:31

    Gran post!

    Responder

  31. Micula Aurel
    31/01/2019 a las 09:56

    Hola
    Hice lo mismo que en el ejemplo, excepto el macro porque en las primeras celdas donde tienes vinculado el mes y el año tengo que poner el nombre y la dirección de la empresa, lo cual es obligatorio, así que tuve que mover el vínculo del mes y año a AG 1 y AG 2, y aquí está mi problema, intenté cambiar la macro pero no funcionó, ¿podrían ayudarme o decirme qué cambiar en la macro para que funcione?
    gracias de antemano
    Respecto al resto de los pasos funcionó perfectamente.

    Responder

  32. BEBER
    28/01/2019 a las 14:42

    Hola Fred,

    ¿Cómo puedo agregar un nombre en la barra de título usando Com Box? Tengo una lista de personas para cada mes.

    Quiero mostrarlo así:

    ELDRIN - del 1 de enero de 2019 al 31 de enero de 2019

    Gracias,

    Responder

  33. BEBER
    23/01/2019 a las 10:00

    Hola Sr. Frederic,

    ¿Podría explicar el código que compartió en el Paso 11?
    Cuando cambio el mes de enero a febrero y febrero (a cualquiera de los meses con menos de 30 días), la columna oculta ya no aparecerá, ya que siempre está oculta incluso si voy al mes con 31 días.

    Cambié este código:
    Desde:
    Para Num_Col = 30 a 32
    A:
    Para Num_Col = 32 a 34

    Usé la columna de D7:AH70

    También probé el mismo código que proporcionaste, pero sigue siendo el mismo escenario.

    Gracias,

    Responder

  34. om goswami
    02/01/2019 a las 18:31

    Muchas gracias señor
    He encontrado exactamente lo que quiero.

    Responder

  35. vineet singh chouhan
    24/10/2018 a las 05:31

    En este formato de calendario quiero agregar el número de semana... ¿es posible? Si es así, déjame saber cómo puedo hacer...

    Responder

    • Gerrit
      31/05/2019 a las 13:48

      ¿Tu calendario está rojo? ¿Puedo tener una copia?

      Responder

      • Frédéric LE GUEN
        04/06/2019 a las 05:39

        Lo siento, no. No lo comparto. Es mejor si lo intentas tú mismo.

  36. Maha
    29/09/2018 a las 16:22

    Todavía me pregunto si es posible no borrar el contenido al avanzar el calendario.
    Utilizo el calendario como una forma de realizar un seguimiento de las vacaciones de mis empleados.
    Pero cuando escriben x en una fecha, digamos 1.7.2018. La x permanecerá en esa celda cuando cambie de mes y año... ¿Resolviste esto?

    Cualquier persona, por favor?

    Responder

  37. kiran kumar ganapuram
    11/08/2018 a las 13:17

    Hola buenas tardes,

    Gracias por proporcionar un artículo tan maravilloso.

    Hice lo mejor que pude al preparar una de las hojas de actualización diaria para mis empleados en función de los aportes proporcionados por usted. Pero cuando escribo algo en el mes de enero se repite lo mismo en todos los meses sin cambios. ¿Cómo puedo borrar u ocultar el contenido de ese mes en particular y comenzar de nuevo el próximo mes?
    Por favor, ayúdenme en este sentido.

    Muchas Gracias

    Responder

  38. kara anderson
    12/07/2018 a las 17:11

    Estimado Federico,

    Gracias por este fantástico vídeo y ayuda. Me pregunto si es posible no borrar el contenido al avanzar el calendario.
    Por ejemplo, cuando mi equipo ingresa su disponibilidad para julio de 2018 y agosto. Volviendo a julio, todos los contenidos están claros.

    Responder

    • Frédéric LE GUEN
      14/07/2018 a las 18:39

      El libro no guarda los valores anteriores. Para ello es obligatorio crear un programa real y no es el objetivo del post.

      Responder

      • praful
        24/07/2018 a las 15:16

        ¿Puedes compartir el código con el público?

      • Frédéric LE GUEN
        24/07/2018 a las 20:09

        ¿Qué código? esta en la publicacion

  39. Verano
    31/05/2018 a las 13:41

    Hola,

    He creado con éxito un calendario automático (para fines de reuniones) usando su tutorial; sin embargo, cuando intento agregar el título de la reunión en la fila debajo de las fechas, en la columna de fecha correcta no parece cambiar cuando cambia el mes, permanece en la misma posición en todo el calendario.

    Espero que esto tenga sentido. ¿Podría indicarme cómo solucionarlo, por favor?

    Muchas gracias

    Responder

    • Stian
      05/06/2018 a las 10:24

      Utilizo el calendario como una forma de realizar un seguimiento de las vacaciones de mis empleados.
      Pero cuando escriben x en una fecha, digamos 1.7.2018. La x permanecerá en esa celda cuando cambie de mes y año... ¿Resolviste esto?

      El tutorial fue genial por cierto.

      Responder

      • Michelle
        22/06/2018 a las 09:35

        ¡Yo también tengo el mismo problema! ¡He pasado tanto tiempo trabajando en esto y no sé cómo hacerlo funcionar!

    • Stian
      05/06/2018 a las 11:14

      Tengo el mismo problema.

      Utilizo el calendario para realizar un seguimiento de las vacaciones de mis empleados. Pero cuando escriben "x" en una celda determinada. Sigue esa celda cuando cambio de mes o año.

      Espero que haya algo que podamos hacer al respecto.

      Muchas gracias por tu sitio web.

      Responder

    • Frédéric LE GUEN
      27/06/2018 a las 10:04

      Hola, he añadido el código para borrar el contenido del calendario cuando cambias de mes.

      Responder

      • James Layzell
        28/06/2018 a las 14:46

        Hola, gracias por la gran plantilla. Quiero usarlo para reservar funciones/eventos en el futuro, ¿cómo se puede ajustar la macro para permitirme pasar a diferentes fechas y años sin perder la información? En el momento en que paso de junio a julio, toda la información de junio desaparece; al eliminar la instrucción ClearContents, la información aparece en cualquier mes que seleccione.

        Muchas gracias por tu tiempo.

        James

      • Danielle
        03/04/2019 a las 21:50

        Hola ¡Gracias por el post! Ha sido realmente útil... Tengo el mismo problema al cambiar de enero a febrero... Toda la información de enero pasará a febrero.

        Gracias por adelantado,
        Danielle

      • Frédéric LE GUEN
        24/04/2019 a las 18:47

        Eso es extraño porque la instrucción para borrar el contenido del rango B7:AF13 está escrita en el código.

      • Noel Davis
        24/04/2019 a las 14:28

        Hola Frederic, gracias por el tutorial. ¿Hay algo que podamos hacer para conservar los datos que se ingresaron en las celdas cuando se cambian los meses? Estoy usando esto como planificador de comunicaciones y me gustaría poder conservar los datos a medida que pasamos los meses. ¿Es esta una posibilidad?

      • Frédéric LE GUEN
        24/04/2019 a las 18:26

        Hola Noelle,
        Sí, es posible, pero en realidad es un programa para administrar nuevas entradas, cambiar valores, eliminar registros anteriores y mostrar valores de meses anteriores.
        Para mí son mínimo 2 días de desarrollo.

  40. Bettina
    02/04/2018 a las 21:58

    Hi there,
    Muchas gracias por el tutorial.
    Hice mi propia versión pero no sé cómo realizar el paso 11 (Ocultar las últimas columnas con una macro).
    En mi caso no hice el calendario en columnas, sino en filas, y le hice un diseño diferente al tuyo.
    No sé cómo hacer la macro para que funcione en la mía.
    ¿Podrías ayudar?

    Gracias por adelantado
    Bettina

    Responder

    • Bettina
      11/04/2018 a las 09:03

      Hola de nuevo,
      Todavía no he logrado un gran avance con mi respuesta anterior. ¿Me podría ayudar?
      También puedes escribirme un correo electrónico, para no regalar parte de la respuesta de la parte paga.

      thx de nuevo

      Responder

  41. Zeno Dsouza
    01/04/2018 a las 10:20

    Hola,

    Permítanme comenzar diciendo que esta es una plantilla excelente y sus instrucciones fueron bastante fáciles de seguir. Gracias por hacerlo tan detallado.

    sin embargo, tuve problemas al intentar cambiar la fórmula para el punto culminante del fin de semana. Vea dónde estoy. Los fines de semana caen en viernes y sábado. ¿Puede aconsejarme qué debo hacer en este caso?

    Muchas Gracias

    Responder

  42. Brooke
    19/03/2018 a las 15:01

    El calendario no actualiza automáticamente los días dentro de los meses. He intentado trastear con las fórmulas; sin embargo, cada vez que elijo un mes del menú desplegable, los días permanecen iguales y nada cambia

    Responder

    • Frédéric LE GUEN
      19/03/2018 a las 15:10

      No hay razón. Si ha seguido correctamente la explicación, funciona. Quizás su fórmula de FECHA no esté vinculada a la celda desplegable.
      Además, la solución está en el archivo que puedes descargar al final del artículo.

      Responder

  43. Frede Rahbek Jensen
    16/03/2018 a las 11:31

    No sé si es Excell 2016 o tal vez porque uso la versión danesa, pero tuve que reemplazarla por ; en las fórmulas. 🙂

    Responder

    • Frédéric LE GUEN
      16/03/2018 a las 11:51

      Esa es la configuración de su computadora. Panel de control>Configuración regional y hay una opción para cambiar ',' por ';' (O de otra forma)

      Responder

  44. Daniel Miller
    07/03/2018 a las 15:02

    Hi there,
    ¿Este método para crear un calendario se adapta automáticamente a febrero cuando hay 28 días frente a 29 días?
    ¿O cuál es el código a agregar para compensar y visibilidad cuando se selecciona febrero para mostrar solo las fechas requeridas para el mes completo?

    Responder

  45. Sumit
    20/02/2018 a las 05:06

    Es excelente y también he creado lo mismo, pero si cambio los datos del mes contra el empleado, ¿cómo se cambiará?

    Responder

  46. Lucie
    11/01/2018 a las 14:04

    Hola Frederic,

    gracias por el gran calendario. Agregué aquí también un cuadro combinado con años. Lamentablemente los años se leen como números de serie.
    Por ejemplo, mi lista de años comienza en 2018, obtuvo el número de serie 1 y se lee como año 1901.

    ¿Podrías darme una pista de cómo solucionarlo?

    Muchas Gracias

    Responder

  47. David
    11/01/2018 a las 03:09

    Excelente calendario y lo tengo funcionando para resaltar los fines de semana, pero he pasado 3 días y no puedo hacer que funcionen las estadísticas de días festivos y la macro. ¿Hay una copia donde está construido todo esto? No soy un tipo técnico de TI, pero lo intento. Gracias

    Responder

    • Frédéric LE GUEN
      12/01/2018 a las 15:41

      Hola Dave,
      He añadido el archivo. Está incluido en la parte de pago por evento.

      Responder

  48. shamik
    08/01/2018 a las 18:47

    Hola,

    Realmente me gustó tu diseño, ¿puedes compartir la plantilla?

    Responder

    • Frédéric LE GUEN
      09/01/2018 a las 19:28

      Ha sido hecho desde cero y no se puede descargar.

      Responder

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Cómo hacer un calendario automático en Excel

Tiempo de leer: 5 minutos
Última actualización el 29/03/2025

Cómo crear un calendario automático con Excel donde los colores de fines de semana y festivos cambian automáticamente para cada mes. Este artículo le detallará paso a paso cómo construirlo.

Pero si necesitas un calendario con registros guardados para cada mes, Vaya a esta página para descargar el archivo.

Calendario de demostración Excel

Paso 1: agregue los nombres de los empleados

En la columna A, escriba los nombres de sus empleados.

Paso 2: agregue un menú desplegable como objeto.

Aunque creando una lista desplegable En Excel es simple; el enfoque estándar no admite la ejecución de macros. Nuestro objetivo es activar una macro cada vez que se selecciona un nuevo mes de la lista. Esta funcionalidad no es posible con las listas desplegables normales. En su lugar, debemos usar un objeto ActiveX, que se puede encontrar en Pestaña desarrollador de Excel.

Agregar lista desplegable ActiveX

Con el mouse, haga clic y estire para que su objeto "Menú desplegable" aparezca en su hoja de cálculo.

Paso 3: Crea la lista mensual

Ahora crearemos la lista de meses en algún lugar de nuestro libro de trabajo (en una columna bastante distante).

Calendario_automático_4

No pierda el tiempo escribiendo meses uno tras otro, el controlador de copia lo hace por usted.

A continuación, debe vincular el objeto del menú desplegable a una celda del libro. para recuperar el valor seleccionado.

  1. Seleccione su objeto desplegable
  2. Haga clic con el botón
  3. Seleccione Formato de control
Opción para el botón desplegable

Se abre el siguiente cuadro de diálogo

  1. Seleccione la pestaña Control (la última)
  2. Seleccione el rango de mes (en este ejemplo AH1:AH12
  3. En el estilo de Enlace de celda, seleccione A1 (explicación, justo debajo)

¿Qué es el enlace celular?

  • Si selecciona mayo, el quinto elemento de la lista, el valor en A5 será 1
  • Y si seleccionas septiembre el valor en A1 será 9
  • ...

Paso 5: Menú desplegable por años

Reproduzca las mismas manipulaciones para tener un menú desplegable para los años.

  • Crea una columna durante años.
  • recuadro un nuevo menú desplegable
  • Vincula la columna del año con el nuevo menú desplegable
  • Asociar el menú desplegable con celda A2

Paso 6: Crea la fecha según el mes y año seleccionados

Ahora crearemos una fórmula que recuperar las celdas vinculadas A1 (por meses) y A2 (por años) regresar el primer día del mes.

Para ello, utilizaremos el Función de fecha con el contenido de las celdas vinculadas.

  • Para A1, la celda del mes, es muy sencillo; Simplemente toma los datos tal como están en la fórmula.
  • Para A2, el menú desplegable devolverá los valores 1, 2, 3, ... correspondientes al valor seleccionado. Para que este valor coincida con un año se debe sumar un valor fijo. Por ejemplo, agregue 2014 a la celda vinculada para crear el año 2015.

La fórmula es por lo tanto

=FECHA(A2+2016,A1,1)

Paso 7: Crea los demás días del mes.

Para calcular los demás días, la fórmula es más sencilla. Simplemente agregue 1 a la celda anterior y copie esta fórmula en el rango de datos C6 a AF6

= B6 + 1

Paso 8: cambia el formato de fecha

En este paso cambiaremos el formato de las fechas para que el día aparezca en letras y números

  • Selecciona todas tus fechas de la línea 6 (de B6 a AF6)
  • Abra el cuadro de diálogo Formato de número (método abreviado de teclado Ctrl + 1 or Inicio>Formato numérico>Otros formatos numéricos ...
  • Seleccione la categoría Personalizada e ingrese el dd dd formato en el cuadro Tipo
Cambiar el formato de las fechas.

Paso 9: cambia la orientación del texto

Ahora cambiaremos la orientación de las fechas. para mostrarlos verticalmente.

  • Seleccione B6: AF6
  • Activar el menú Inicio
  • Orientación
  • Girar texto hacia arriba
Menú para rotar la redacción.

Y para finalizar el trabajo, ajusta el tamaño de las columnas de B a AF

  1. Seleccionar columnas B: AF
  2. Haga clic con el botón en el encabezado de la columna
  3. Elegir Ancho de columna
  4. Establezca el ancho de columna en 2.5

El calendario avanza muy bien.. Al cambiar los valores en los menús desplegables, verá los días del mes seleccionado.

Paso 10: formatea tu calendario

Agregar bordes y color a tu calendario.

Paso 11: agrega un título dinámico

Ahora crearemos un título que se adaptará al mes y año seleccionado.

Primera y última fecha del mes.

  • La fórmula para el primer día es: =FECHA(A2+2016,A1,1)
  • La fórmula para el último día del mes es: =DATE(A2+2016,A1+1,1)-1

Fórmula para título dinámico

Debemos insertar estas 2 funciones en una función TEXTO para devolver Una cadena y una fecha formateada en la misma celda.

="Período desde "&TEXT(DATE(A2+2016,A1,1),"dd mmmm aaaa") &" hasta "&TEXT(DATE(A2+2016,A1+1,1)-1,"dd mmmm aaaa")

Paso 12: Cambia el color de fines de semana y festivos.

Para cambiar los colores de las fiestas, usaremos formato condicional y especialmente métodos con fórmulas personalizadas. Crearemos 2 reglas.

  • uno para los fines de semana
  • otro para los días festivos.

Regla para los fines de semana

  1. Seleccione su cuenta en B6: AF13 rango de datos
  2. Cree una nueva regla de formato condicional (Inicio>Formato condicional>Nueva regla)
  3. Seleccione la opción  Utilice una opción de fórmula para determinar a qué celdas se aplicará el formato a
  4. Escribe la formula =DÍAS DEL MEDIO(B$6,2)>5
  5. Cambiar el color de relleno (aquí de naranja)

Muy, muy, MUY IMPORTANTE ❗❗❗ Solo hay un $ en la fórmula después de la columna B

Regla para vacaciones

Aquí necesitamos integrar en nuestro libro de trabajo la lista de días festivos de su país. Al hacer clic en este enlace, encontrarás las fórmulas para calcular los días festivos de Estados Unidos.

Estados Unidos Día festivo 2019

La fórmula para esta regla es diferente al cálculo anterior. Aquí usaremos el Función COUNTIF

  1. Selecciona todos tus datos (celdas B6:AF13)
  2. Cree una regla de formato condicional (Inicio>Formato condicional>Nuevas reglas)
  3. Seleccione Use una fórmula para determinar qué celdas formatear
  4. Escribe la formula =CONTAR.SI(¡Días festivos!$B$2:$B$4,B$6)>0
  5. Cambiar el color de fondo (rojo)

revisa tus reglas

Abra la administrador de reglas condicionales (Inicio>Formato condicional>Administrar reglas), puede ver las 2 reglas creadas en su hoja de cálculo.

No olvides seleccionar Esta hoja de cálculo desde el primer menú desplegable para ver todas las reglas.

Reglas de formato condicional

Paso 13: Ocultar las últimas columnas por Macro

Como no todos los meses tienen el mismo número de días, ocultaremos las columnas que no pertenecen al mes seleccionado.

Se dan todas las explicaciones sobre el código. en este articulo

El programa leerá las columnas AD, AE y AF para verificar que el valor del mes en estas celdas sea igual al valor contenido en A1 (valor del mes seleccionado). En caso contrario, la columna queda oculta.

  1. Presione Alt + F11 para abrir el Editor de Visual Basic
  2. Desde el recuadro menú, seleccione Módulo
  3. Copia y pega el siguiente código en tu módulo.

Sub Hide_Day()
Dim Num_Col mientras
'Esta instrucción borra el contenido de las celdas de su calendario.
Rango("B7:AF13").Borrar contenido
Para Num_Col = 30 a 32
'Prueba si el mes de las celdas (fila 6) es el mismo que el mes seleccionado (celda A1 o celdas(1,1))
Si Mes (Celdas (6, Num_Col)) >= Celdas (1, 1) Entonces
Columnas (Num_Col). Ocultas = Verdadero
otro
Columnas(Num_Col).Ocultas = Falso
Si terminar
Siguiente

Para finalizar el trabajo aún nos queda vincular los 2 menús desplegables con la macro. De esta manera, con cada nueva selección, se lanzará la macro..

  1. Seleccione el cuadro combinado
  2. Haga clic derecho sobre él.
  3. Elegir Asignar macro
  4. Seleccione el nombre de la macro (Hide_Day)
  5. Haga clic en Aceptar
  6. Realice la misma operación nuevamente para el segundo menú desplegable.

Ahora, cada vez que seleccione un mes o año en los menús desplegables, su calendario se actualizará y las columnas se ocultarán (o mostrarán) automáticamente.

Calendario automático terminado

93 Comentarios

  1. Mike
    24/03/2025 a las 17:39

    ¿Cómo puedo agregar eventos al calendario sin que aparezcan en el próximo mes cuando cambio el mes a través del menú desplegable?

    Responder

  2. Ahmet Karaaslán
    18/03/2025 a las 20:20

    Emeğinize sağlık hocam muhteşem bir anlatım olmuş bu örneği ahmetkaraaslan4615@gmail.com
    adresina gönderilebilir misiniz

    Responder

    • Frédéric LE GUEN
      24/03/2025 a las 04:23

      Buen hallazgo. Estoy trabajando para solucionar el problema.

      Responder

  3. Ahmet Karaaslán
    18/03/2025 a las 20:14

    Esta es la razón ahmetkaraaslan4615@gmail.com
    adresina gönderilebilir misiniz

    Responder

  4. Jamal
    17/02/2023 a las 17:20

    Hola, el único problema que tengo está justo al final, por ejemplo, si lleno la celda para uno de los días de febrero y luego cambio el mes a marzo, no puedo ver el contenido que quiero. Sin embargo, después de hacer clic en marzo y querer volver a febrero, todo mi contenido desaparece, lo cual no quiero. Entonces, básicamente, si completo información para cualquier mes y hago clic y vuelvo a ese mes, todo lo que lo completé desaparece. ¿Hay alguna forma de superar esto?

    Responder

  5. Allen
    17/02/2023 a las 15:13

    ¿Mis días no cambian? ¿Qué hice mal?

    Responder

  6. konstie
    24/11/2022 a las 18:38

    así que he llegado al punto de destacar los días festivos.
    ahora quiero una columna diferente para contar cuántos días laborables tiene cada empleado. Usé el código =CONTAR.SI(D10:AH10; "O") y marco con una "O" cada día laboral de cada persona. pero ¿qué pasa si quiero contar los fines de semana y días festivos laborables por separado? ¿Para que cuando complete el calendario pueda ver cuántos domingos y sábados tiene que trabajar cada empleado?

    Responder

  7. Celine Moutic
    17/11/2022 a las 19:48

    Hola Frédéric y gracias por este tutorial tan útil!!
    Solo tengo un pequeño problema con el que espero que puedan ayudarme >> Cuando quiero agregar pequeñas "x" al mes de agosto para un empleado específico, por ejemplo, veo que las "x" también aparecen en todos los demás meses también. ¿Cómo podemos restringir que la "x" sólo se presente en el mes de agosto?

    Muchas gracias de antemano !!

    Responder

    • Frédéric LE GUEN
      20/11/2022 a las 10:31

      No entiendo tu pregunta porque el calendario usaba una sola hoja de trabajo. Entonces, ¿cómo puedes tener "x" para otros meses?

      Responder

      • Vicky
        17/01/2023 a las 10:42

        Las "x" probablemente sean el texto que indica que un empleado trabaja el 1 de agosto, por ejemplo. ¿Cómo podemos hacer que esa información siga la fecha específica y solo aparezca en el celular del empleado del 1 de agosto?
        ahora todo lo que escribas en un mes permanecerá allí durante todos los meses. Necesitamos guardar el mes y pasar al siguiente comenzando en blanco, ¿es posible?

  8. Aldrin C
    07/08/2022 a las 06:11

    Gracias por esto. Pero, ¿cómo puedo cambiar el fin de semana? Aquí está Arabia Saudita, nuestro fin de semana es viernes y sábado.

    Responder

    • Frédéric LE GUEN
      18/08/2022 a las 14:45

      Ya veo, cambie el argumento DÍA DE LA SEMANA a 5 o 6 (no recuerdo exactamente) y funcionará

      Responder

  9. Hiren
    07/07/2022 a las 11:10

    Gracias por el tutorial. Logré terminar todos excepto los últimos 2 pasos... no pude entender correctamente cómo hacerlo. a....

    Responder

  10. estilo
    12/05/2022 a las 21:51

    Diré que la macro no funciona si no estás seguro de lo que estás creando. Especialmente porque no puedes ver el libro completo que están usando. Me salté la macro por completo y puse el texto en blanco.

    Responder

  11. Lisa Nieth
    10/02/2022 a las 18:05

    Gracias por el tutorial. Pude crear el calendario, pero me gustaría que cada celda tuviera un cuadro desplegable con una lista de opciones para que los empleados eligieran. Si hago la Validación de datos y creo la lista de celdas en el calendario, funciona. Sin embargo, si ingreso una opción de la lista para el 10 de febrero, esa selección se mantiene para el día 10 de cada mes. ¿Cómo puedo hacer para que mi lista en las celdas del calendario no se repita en otros meses? No soy un experto en Excel y no sé cómo resolver esto sin ayuda.

    Responder

    • Asdfy
      14/03/2022 a las 01:54

      Sí, porque el calendario está en el mismo lugar... cada vez que cambias el mes en el menú desplegable, se activa una macro que borra los datos y cambia el mes según tu elección, pero en realidad sucede en el mismo lugar.
      Puedes intentarlo así... Haz un calendario para todo el año, después simplemente cambia el código así.

      Sub Hide_Day()
      Dim Num_Col mientras

      Num_Col = 365 'La cantidad de columnas necesarias para todos los meses del año

      Para Num_Col = 2 To 365 'supongo que el calendario comenzará desde B. Necesitará una columna para los nombres de los trabajadores

      Si Mes(Celdas(6, Num_Col)) = Celdas(1, 1)
      Columnas(Num_Col).Ocultas = Falso
      otro
      Columnas (Num_Col). Ocultas = Verdadero
      Si terminar
      Siguiente
      End Sub

      Responder

  12. Shashi
    07/11/2021 a las 06:41

    la macro no funciona. Por favor ayuda

    Responder

  13. Hisham
    15/09/2021 a las 15:34

    Muchas Gracias

    Responder

  14. Lilian
    27/08/2021 a las 15:20

    Gracias por esto, muy claro y logré crear el calendario. Sin embargo, ¿cómo puedo evitar que los datos introducidos en el campo desaparezcan una vez que cambia el mes? ¿Ya tienes los datos para compartir?

    Responder

    • Frédéric LE GUEN
      01/09/2021 a las 14:12

      De hecho, su pregunta es más "cómo guardar el valor de cada mes". Y la respuesta es "no es posible con Excel". Eche un vistazo a Microsoft Planner en su cuenta de Office 365.

      Responder

  15. Malena
    06/07/2021 a las 12:13

    Hi
    digamos que el calendario comienza el día 28 y termina el día 27. Ex. del 28 de febrero de 2021 al 27 de marzo de 2021, pero la fila continúa hasta el 30 y quiero ocultar los días 28, 29 y 30.
    ¿Es el mismo código o tengo que cambiar un poco?

    Responder

  16. A
    07/11/2020 a las 13:59

    Gran guía. Sé que esta es una publicación anterior pero tengo problemas con el conteo y las fechas de los días festivos. Estoy tratando de hacer un calendario para programar durante los días críticos y ver rápidamente si el tiempo libre de los empleados durante las vacaciones entra en conflicto entre sí.

    Responder

  17. haris awan
    03/11/2020 a las 22:53

    Hola, tengo dificultades con la codificación de macros. muestra el error *ERROR DE COMPILACIÓN* ERROR DE SINTAXIS
    ¿Alguien puede ayudarme con ello?

    Responder

  18. Exar
    26/11/2019 a las 01:46

    Hola,
    Gracias por este tutorial.
    ¿Le importaría compartir cómo guarda los datos mes a mes sin que se borre?

    Esta plantilla resulta extremadamente útil con la capacidad de retener datos.
    Gracias de nuevo.

    Responder

    • Frédéric LE GUEN
      26/11/2019 a las 15:02

      Hola, gracias por apreciar mi artículo, pero no puedo responder a tu mensaje así. Es un desarrollo completo aquí porque si desea mostrar el resultado anterior, eso significa que cada celda tiene fórmulas para recopilar el resultado anterior (esta fórmula no es fácil y depende del contexto de cada hoja de trabajo). Y por supuesto, si actualizas un valor en el calendario, eliminarás la fórmula. Espero que entiendas la complejidad de un proyecto de este tipo. Puedo pero es un desarrollo (2 o 3 días para mí)

      Responder

      • Hussain
        31/12/2019 a las 01:02

        Estimado Sr. Frédéric LE GUEN

        Gracias por esta hermosa explicación.
        Seguí tu explicación paso a paso y el resultado fue hermoso, pero cuando vuelvo a un mes en el que los días son 30 días o 31 días, los días quedan ocultos.
        Por favor, si es posible, adjunte el archivo del calendario. Te lo agradeceré.

      • Frédéric LE GUEN
        03/01/2020 a las 06:37

        Seguramente hay un problema con tu macro. Probablemente la fila de tus días no sea la que se menciona en el código.
        Echa un vistazo a este enlace comprender el código y también personalizarlo.
        No, no comparto el archivo. No es la forma de aprender a usar Excel.

  19. thuy
    17/10/2019 a las 04:49

    He realizado cambios en el código VBA para asegurarme de que se ejecute correctamente como se indica a continuación.

    Sub Hide_Day()
    Dim Num_Col mientras
    'para mostrar todas las columnas
    Columnas.EntireColumn.Hidden = Falso
    'Esta instrucción limpia el contenido de las celdas de tu calendario.
    Rango("B7:AF13").Borrar contenido
    Para Num_Col = 30 a 32
    'Prueba si el mes de las celdas (fila 6) es el mismo que el mes seleccionado (celda A1 o celdas(1,1))
    Si Mes (Celdas (6, Num_Col)) > Celdas (1, 1) Entonces
    Columnas (Num_Col). Ocultas = Verdadero
    otro
    Columnas(Num_Col).Ocultas = Falso
    Si terminar
    Siguiente
    End Sub

    Responder

  20. frederick wright
    15/10/2019 a las 11:47

    En base a esto, ¿puedo completar los campos a continuación según la selección del mes?
    Además, ¿puedo usar una búsqueda virtual o una coincidencia de índice en otra pestaña para recoger las entradas a pesar de que este calendario sea dinámico?

    Responder

  21. gatito
    05/09/2019 a las 09:42

    ¡Hola!
    ¡Gracias por esto, es realmente útil! 🙂
    Sin embargo la macro no me funciona. Aparece un mensaje de error (error de sintaxis) para esta fila:

    Si Mes (Celdas (6, Num_Col)) >= Celdas (1, 1) Entonces

    ¿Me puedes ayudar? ¿Qué tengo que hacer?

    Responder

    • Frédéric LE GUEN
      07/09/2019 a las 10:15

      Hola,
      He escrito este artículo toda la explicación del código. En función de la construcción de tu calendario, debes adaptar algunos argumentos (como el número de fila o el número de columna)

      Responder

    • rubú
      26/06/2020 a las 10:30

      ¡Hola!
      He tenido el mismo problema. La solución es la siguiente.

      Si mes (celdas (6; Num_Col)) = celdas (1,1) entonces

      Eso funciona

      Responder

  22. Deepika
    13/08/2019 a las 07:58

    Hola, ¿podrías compartir también el código para conservar los datos que se ingresaron en las celdas cuando se cambian los meses?

    Sería muy útil !!

    Responder

    • Frédéric LE GUEN
      21/08/2019 a las 07:31

      No, porque este es un proyecto completo con muchas líneas de código. Además, cada situación es única y no puedo escribir un código "estándar".

      Responder

  23. Eteruz Medas
    29/07/2019 a las 17:27

    Hola Frederic, no pude hacer que la macro ocultara y mostrara las columnas (volví a verificar y no pude encontrar el problema). Tampoco puedo retener los detalles de los meses individuales (cada vez que vuelvo al mes anterior, la macro limpia el contenido). ¿Cómo se puede cambiar eso?

    Responder

    • Meagan Lampton Gregorio
      16/09/2019 a las 15:22

      Estaba teniendo un problema similar y cambié mi código en la línea 7 a esto:

      Si día (celdas (6, Num_Col)) <= "29" entonces

      funciona muy bien

      Responder

      • Meagan Lampton Gregorio
        16/09/2019 a las 15:53

        En realidad, lo que debes hacer es cambiar ">=" a ">" en la línea 7.

  24. adriano rodrigues
    01/07/2019 a las 17:03

    excelente

    Responder

  25. Varun
    26/06/2019 a las 00:29

    Hola, excelente video!! Me gustaría mantener las celdas completas cada mes y no tener claro el contenido después de seleccionar un nuevo mes/año. ¿Es eso posible? Si es así, ¿puede describirlo? gracias de antemano

    Responder

    • Kate
      08/07/2019 a las 05:14

      También tengo el mismo problema con este. Cuando escribo cualquier celda durante el mes pero el contenido anterior sigue ahí. Por favor ayuda. Gracias de antemano.

      Responder

  26. khomol
    13/06/2019 a las 21:14

    Hola. Excelente publicación, muy clara y fácil de seguir, incluso la he personalizado según mis necesidades. Pero necesito ayuda para crear una versión de hoja de cálculo de Google, ¿alguna sugerencia sobre cómo hacerlo?

    Responder

    • Frédéric LE GUEN
      13/06/2019 a las 21:32

      Gracias, pero Excel Online es mejor que la hoja de Google y también es gratuito.
      Todos los pasos son posibles con Excel Online excepto el menú desplegable.

      Responder

  27. Lauren
    12/06/2019 a las 10:18

    Hola,

    ¿Hay alguna forma de mantener los datos solo en ese mes actual? Lo estoy usando para realizar un seguimiento de los días de enfermedad de los empleados y cuando cambia el mes, trae los datos de, digamos, abril a mayo.
    Gracias por su atención.

    Lauren

    Responder

    • Frédéric LE GUEN
      12/06/2019 a las 10:37

      Hola Lauren, Sí, es posible, pero es un desarrollo (macro y fórmulas) y lleva tiempo.
      Porque, no sólo debes gestionar cómo guardar cada día de baja y la forma de visualizarlos en función del mes seleccionado sino que también debes gestionar una interfaz para actualizar o eliminar datos anteriores.

      Responder

      • arrendajo
        29/07/2019 a las 16:15

        ¡También necesito la misma función! ¡Haga un tutorial para guardar la información en el menú desplegable de cada mes!

    • Dante
      26/06/2019 a las 03:33

      El calendario es brillante. Pero también deseo tener esta función para poder realizar un seguimiento de las bajas por enfermedad/vacaciones. Básicamente conserva los datos del mes anterior.

      Responder

  28. WINSTON T CUISÓN
    08/06/2019 a las 09:56

    ¿Hay alguna forma de guardar los datos anteriores cuando cambio a otro mes? Por alguna razón, cuando vuelvo al mes anterior, perdí todos los datos. ¿Hay alguna forma de arreglar esto?

    Responder

    • Frédéric LE GUEN
      09/06/2019 a las 15:07

      Sí, es posible pero es un proyecto real con desarrollo. Uno o 2 días para mí.

      Responder

      • Tina
        05/11/2019 a las 13:08

        Gracias por crear este calendario... ¿ha encontrado la manera de guardar los datos del mes anterior al seleccionar el mes siguiente?

        Por favor guía

      • Frédéric LE GUEN
        26/11/2019 a las 15:10

        Hola, gracias por apreciar mi artículo, pero no puedo responder a tu mensaje así. Es un desarrollo completo aquí porque si desea mostrar el resultado anterior, eso significa que cada celda tiene fórmulas para recopilar el resultado anterior (esta fórmula no es fácil y depende del contexto de cada hoja de trabajo). Y por supuesto, si actualizas un valor en el calendario, eliminarás la fórmula. Espero que entiendas la complejidad de un proyecto de este tipo. Puedo pero es un desarrollo (2 o 3 días para mí)

  29. Gerrit
    31/05/2019 a las 13:45

    ¿Puedo descargar este calendario por favor?

    Responder

    • Frédéric LE GUEN
      31/05/2019 a las 21:23

      Hola, fue posible descargarlo con Paypal hace mucho tiempo pero era demasiado difícil gestionar la descarga automática con su plataforma. Entonces ahora no es posible descargar el archivo. Lo siento

      Responder

    • Lorena
      07/06/2019 a las 14:55

      Cuando ingreso texto en un mes, se transfiere al mes siguiente. ¿Cómo evito que esto suceda?

      Responder

      • Frédéric LE GUEN
        07/06/2019 a las 17:51

        No entiendo cuando dices "Cuando ingreso texto en un mes". No es necesario que ingrese texto, solo seleccione el mes en la lista desplegable

  30. sandeep kothari
    21/04/2019 a las 08:31

    Gran post!

    Responder

  31. Micula Aurel
    31/01/2019 a las 09:56

    Hola
    Hice lo mismo que en el ejemplo, excepto el macro porque en las primeras celdas donde tienes vinculado el mes y el año tengo que poner el nombre y la dirección de la empresa, lo cual es obligatorio, así que tuve que mover el vínculo del mes y año a AG 1 y AG 2, y aquí está mi problema, intenté cambiar la macro pero no funcionó, ¿podrían ayudarme o decirme qué cambiar en la macro para que funcione?
    gracias de antemano
    Respecto al resto de los pasos funcionó perfectamente.

    Responder

  32. BEBER
    28/01/2019 a las 14:42

    Hola Fred,

    ¿Cómo puedo agregar un nombre en la barra de título usando Com Box? Tengo una lista de personas para cada mes.

    Quiero mostrarlo así:

    ELDRIN - del 1 de enero de 2019 al 31 de enero de 2019

    Gracias,

    Responder

  33. BEBER
    23/01/2019 a las 10:00

    Hola Sr. Frederic,

    ¿Podría explicar el código que compartió en el Paso 11?
    Cuando cambio el mes de enero a febrero y febrero (a cualquiera de los meses con menos de 30 días), la columna oculta ya no aparecerá, ya que siempre está oculta incluso si voy al mes con 31 días.

    Cambié este código:
    Desde:
    Para Num_Col = 30 a 32
    A:
    Para Num_Col = 32 a 34

    Usé la columna de D7:AH70

    También probé el mismo código que proporcionaste, pero sigue siendo el mismo escenario.

    Gracias,

    Responder

  34. om goswami
    02/01/2019 a las 18:31

    Muchas gracias señor
    He encontrado exactamente lo que quiero.

    Responder

  35. vineet singh chouhan
    24/10/2018 a las 05:31

    En este formato de calendario quiero agregar el número de semana... ¿es posible? Si es así, déjame saber cómo puedo hacer...

    Responder

    • Gerrit
      31/05/2019 a las 13:48

      ¿Tu calendario está rojo? ¿Puedo tener una copia?

      Responder

      • Frédéric LE GUEN
        04/06/2019 a las 05:39

        Lo siento, no. No lo comparto. Es mejor si lo intentas tú mismo.

  36. Maha
    29/09/2018 a las 16:22

    Todavía me pregunto si es posible no borrar el contenido al avanzar el calendario.
    Utilizo el calendario como una forma de realizar un seguimiento de las vacaciones de mis empleados.
    Pero cuando escriben x en una fecha, digamos 1.7.2018. La x permanecerá en esa celda cuando cambie de mes y año... ¿Resolviste esto?

    Cualquier persona, por favor?

    Responder

  37. kiran kumar ganapuram
    11/08/2018 a las 13:17

    Hola buenas tardes,

    Gracias por proporcionar un artículo tan maravilloso.

    Hice lo mejor que pude al preparar una de las hojas de actualización diaria para mis empleados en función de los aportes proporcionados por usted. Pero cuando escribo algo en el mes de enero se repite lo mismo en todos los meses sin cambios. ¿Cómo puedo borrar u ocultar el contenido de ese mes en particular y comenzar de nuevo el próximo mes?
    Por favor, ayúdenme en este sentido.

    Muchas Gracias

    Responder

  38. kara anderson
    12/07/2018 a las 17:11

    Estimado Federico,

    Gracias por este fantástico vídeo y ayuda. Me pregunto si es posible no borrar el contenido al avanzar el calendario.
    Por ejemplo, cuando mi equipo ingresa su disponibilidad para julio de 2018 y agosto. Volviendo a julio, todos los contenidos están claros.

    Responder

    • Frédéric LE GUEN
      14/07/2018 a las 18:39

      El libro no guarda los valores anteriores. Para ello es obligatorio crear un programa real y no es el objetivo del post.

      Responder

      • praful
        24/07/2018 a las 15:16

        ¿Puedes compartir el código con el público?

      • Frédéric LE GUEN
        24/07/2018 a las 20:09

        ¿Qué código? esta en la publicacion

  39. Verano
    31/05/2018 a las 13:41

    Hola,

    He creado con éxito un calendario automático (para fines de reuniones) usando su tutorial; sin embargo, cuando intento agregar el título de la reunión en la fila debajo de las fechas, en la columna de fecha correcta no parece cambiar cuando cambia el mes, permanece en la misma posición en todo el calendario.

    Espero que esto tenga sentido. ¿Podría indicarme cómo solucionarlo, por favor?

    Muchas gracias

    Responder

    • Stian
      05/06/2018 a las 10:24

      Utilizo el calendario como una forma de realizar un seguimiento de las vacaciones de mis empleados.
      Pero cuando escriben x en una fecha, digamos 1.7.2018. La x permanecerá en esa celda cuando cambie de mes y año... ¿Resolviste esto?

      El tutorial fue genial por cierto.

      Responder

      • Michelle
        22/06/2018 a las 09:35

        ¡Yo también tengo el mismo problema! ¡He pasado tanto tiempo trabajando en esto y no sé cómo hacerlo funcionar!

    • Stian
      05/06/2018 a las 11:14

      Tengo el mismo problema.

      Utilizo el calendario para realizar un seguimiento de las vacaciones de mis empleados. Pero cuando escriben "x" en una celda determinada. Sigue esa celda cuando cambio de mes o año.

      Espero que haya algo que podamos hacer al respecto.

      Muchas gracias por tu sitio web.

      Responder

    • Frédéric LE GUEN
      27/06/2018 a las 10:04

      Hola, he añadido el código para borrar el contenido del calendario cuando cambias de mes.

      Responder

      • James Layzell
        28/06/2018 a las 14:46

        Hola, gracias por la gran plantilla. Quiero usarlo para reservar funciones/eventos en el futuro, ¿cómo se puede ajustar la macro para permitirme pasar a diferentes fechas y años sin perder la información? En el momento en que paso de junio a julio, toda la información de junio desaparece; al eliminar la instrucción ClearContents, la información aparece en cualquier mes que seleccione.

        Muchas gracias por tu tiempo.

        James

      • Danielle
        03/04/2019 a las 21:50

        Hola ¡Gracias por el post! Ha sido realmente útil... Tengo el mismo problema al cambiar de enero a febrero... Toda la información de enero pasará a febrero.

        Gracias por adelantado,
        Danielle

      • Frédéric LE GUEN
        24/04/2019 a las 18:47

        Eso es extraño porque la instrucción para borrar el contenido del rango B7:AF13 está escrita en el código.

      • Noel Davis
        24/04/2019 a las 14:28

        Hola Frederic, gracias por el tutorial. ¿Hay algo que podamos hacer para conservar los datos que se ingresaron en las celdas cuando se cambian los meses? Estoy usando esto como planificador de comunicaciones y me gustaría poder conservar los datos a medida que pasamos los meses. ¿Es esta una posibilidad?

      • Frédéric LE GUEN
        24/04/2019 a las 18:26

        Hola Noelle,
        Sí, es posible, pero en realidad es un programa para administrar nuevas entradas, cambiar valores, eliminar registros anteriores y mostrar valores de meses anteriores.
        Para mí son mínimo 2 días de desarrollo.

  40. Bettina
    02/04/2018 a las 21:58

    Hi there,
    Muchas gracias por el tutorial.
    Hice mi propia versión pero no sé cómo realizar el paso 11 (Ocultar las últimas columnas con una macro).
    En mi caso no hice el calendario en columnas, sino en filas, y le hice un diseño diferente al tuyo.
    No sé cómo hacer la macro para que funcione en la mía.
    ¿Podrías ayudar?

    Gracias por adelantado
    Bettina

    Responder

    • Bettina
      11/04/2018 a las 09:03

      Hola de nuevo,
      Todavía no he logrado un gran avance con mi respuesta anterior. ¿Me podría ayudar?
      También puedes escribirme un correo electrónico, para no regalar parte de la respuesta de la parte paga.

      thx de nuevo

      Responder

  41. Zeno Dsouza
    01/04/2018 a las 10:20

    Hola,

    Permítanme comenzar diciendo que esta es una plantilla excelente y sus instrucciones fueron bastante fáciles de seguir. Gracias por hacerlo tan detallado.

    sin embargo, tuve problemas al intentar cambiar la fórmula para el punto culminante del fin de semana. Vea dónde estoy. Los fines de semana caen en viernes y sábado. ¿Puede aconsejarme qué debo hacer en este caso?

    Muchas Gracias

    Responder

  42. Brooke
    19/03/2018 a las 15:01

    El calendario no actualiza automáticamente los días dentro de los meses. He intentado trastear con las fórmulas; sin embargo, cada vez que elijo un mes del menú desplegable, los días permanecen iguales y nada cambia

    Responder

    • Frédéric LE GUEN
      19/03/2018 a las 15:10

      No hay razón. Si ha seguido correctamente la explicación, funciona. Quizás su fórmula de FECHA no esté vinculada a la celda desplegable.
      Además, la solución está en el archivo que puedes descargar al final del artículo.

      Responder

  43. Frede Rahbek Jensen
    16/03/2018 a las 11:31

    No sé si es Excell 2016 o tal vez porque uso la versión danesa, pero tuve que reemplazarla por ; en las fórmulas. 🙂

    Responder

    • Frédéric LE GUEN
      16/03/2018 a las 11:51

      Esa es la configuración de su computadora. Panel de control>Configuración regional y hay una opción para cambiar ',' por ';' (O de otra forma)

      Responder

  44. Daniel Miller
    07/03/2018 a las 15:02

    Hi there,
    ¿Este método para crear un calendario se adapta automáticamente a febrero cuando hay 28 días frente a 29 días?
    ¿O cuál es el código a agregar para compensar y visibilidad cuando se selecciona febrero para mostrar solo las fechas requeridas para el mes completo?

    Responder

  45. Sumit
    20/02/2018 a las 05:06

    Es excelente y también he creado lo mismo, pero si cambio los datos del mes contra el empleado, ¿cómo se cambiará?

    Responder

  46. Lucie
    11/01/2018 a las 14:04

    Hola Frederic,

    gracias por el gran calendario. Agregué aquí también un cuadro combinado con años. Lamentablemente los años se leen como números de serie.
    Por ejemplo, mi lista de años comienza en 2018, obtuvo el número de serie 1 y se lee como año 1901.

    ¿Podrías darme una pista de cómo solucionarlo?

    Muchas Gracias

    Responder

  47. David
    11/01/2018 a las 03:09

    Excelente calendario y lo tengo funcionando para resaltar los fines de semana, pero he pasado 3 días y no puedo hacer que funcionen las estadísticas de días festivos y la macro. ¿Hay una copia donde está construido todo esto? No soy un tipo técnico de TI, pero lo intento. Gracias

    Responder

    • Frédéric LE GUEN
      12/01/2018 a las 15:41

      Hola Dave,
      He añadido el archivo. Está incluido en la parte de pago por evento.

      Responder

  48. shamik
    08/01/2018 a las 18:47

    Hola,

    Realmente me gustó tu diseño, ¿puedes compartir la plantilla?

    Responder

    • Frédéric LE GUEN
      09/01/2018 a las 19:28

      Ha sido hecho desde cero y no se puede descargar.

      Responder

Deje un comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *