Control Calendario MonthView en Excel

Compatibilidad: Excel 365 2021 2019 2016

Para insertar fechas creamos un formulario con control calendario MonthView en Excel que permita seleccionar la fecha deseada.

Los controles ActiveX son pequeños programas, denominados en ocasiones complementos o referencias, que nos permite mostrar un interfaz para realizar una tarea. En nuestro caso emplearemos el control de calendario de Microsoft MonthView Control mscomct2.ocx.
Disponemos de nuestros datos en la columna A (Comercial) y en la columna B (Zona). Deseamos insertar en la columna C la fecha deseada.
Control Calendario MonthView en Excel: Hoja con calendario para insertar fechas en columna C
  • EDITOR VISUAL BASIC. Abrimos el editor de Visual Basic.
  1. Abrir el libro deseado / Guardar con la extensión *.xlsm. Libro habilitado para macros.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  • INSERTAR FORMULARIO
  1. Ir a: Barra de menús / Insertar / UserForm. Insertará un formulario vacío.

    UserForm insertado como objeto
  2. PROPIEDADES USERFORM. Mostrar ventana de propiedades, si no está visible. Ir a: Barra de Menú / Ver / Ventana Propiedades; O Ir a: Barra de Herramientas Estándar / Botón: Ventana de propiedades; O Atajo Teclado: F4; Mostrará la ventana de propiedades.

  3. Ir a: Ventana Propiedades / Clic Ficha Alfabética. Muestra las propiedades en orden alfabético.

  4. Aplicar los valores a la propiedad UserForm:

    PropiedadValor
    NameMi_Formulario
    CaptionCalendario
    Height152
    Width144
  • CONTROL: MONTHVIEW
  1. Ir a Panel: Cuadro de Herramientas / Botón derecho del ratón / Controles adicionales. Mostrará ventana de controles.

    Ventana de controles adicionales: Microsoft MonthView Control 6.0
  2. Activar la casilla: Microsoft MonthView Control 6.0 (SP4). O la versión disponible.

  3. Pulsar el botón Aceptar. Cierra ventana e inserta el control en el cuadro de herramientas.

  4. Ir a: Cuadro de herramientas / Clic sobre MonthView. Activamos el control para insertarlo en el formulario.

    Cuadro de herramientas con control MonthView
  5. Ir al Formulario / Clic en el interior. Insertará el control de calendario.

    Control MonthView insertado en el formulario
  6. Ir a: Ventana Propiedades / Clic Ficha Alfabética. Muestra las propiedades en orden alfabético.

  7. Aplicar los valores a la propiedad del control MonthView:

    PropiedadValor
    NameMi_Calendario
    CaptionCalendario
  • VISTA DE CÓDIGO DEL USERFORM. Insertamos el código para el formulario.
  1. Ir a: Barra de menús / Ver / Código; O también, Atajo de teclado F7.

  2. Escribir el código 1:

    Option Explicit

    Private Sub Mi_Calendario_DateClick( ByVal DateClicked As Date)

    ActiveCell.Value = DateClicked

    Unload Mi_Formulario

    End Sub

  3. Escribir el código 2: Muestra el formulario con la fecha de hoy (Now) y en la posición respecto a la celda seleccionada (left y Top).

    Private Sub UserForm_Activate()

    Mi_Calendario = Now

    With Mi_Calendario

    .Left = ActiveCell.Left + ActiveCell.Width + 220

    .Top = ActiveCell.Top + 180

    End With

    End Sub

  • INSERTAR MACRO EN HOJA 1. Al seleccionar cualquier celda de la columna 3 (C) muestra el formulario.
  1. Ir a: Explorador de Proyectos / VBAProject (nombre_libro) / Doble Clic sobre Hoja1(Hoja1), o la hoja deseada. Si el panel no está visible, Ir a: Barra de menú / Ver / Explorador de proyectos. Mostrará la ventana del módulo.

    Panel explorador de proyecto con Hoja1(Hoja1) seleccionada.
  2. Escribir el código de la macro:

    Private Sub Worksheet_SelectionChange (ByVal Target As Range)

    If ActiveCell.Column = 3 Then

    Mi_Formulario.Show

    End If

    End Sub

  • EJECUTAR PROCEDIMIENTO.
  1. Ir a: Hoja1 del libro Excel / Clic sobre la celda deseada de la columna C. Mostrará formulario con el calendario.

  2. Seleccionar el mes y año deseado / Clic sobre el día. Insertará la fecha en la celda.

Control Calendario MonthView en Excel: Proceso para insertar fechas en columna C desde el control de formulario
Nivel de dificultad: Experto VBA-Macros Excel Experto VBA - Macros

- Consultar:

34 comentarios en “Control Calendario MonthView en Excel

  • Estimados hay alguna manera de darle formato a las etiquetas de dias en un month view, ya que los dias se ven opacos

  • Buen día, quisiera saber cómo hago para que al crear un formulario en el cual incluya un DatePicker, al abrir este mismo archivo en otro pc y otra versión de excel, no ponga problema para abrir el formulario, ya que es un programa que se va a manejar en varios computadores en los cuales no puedo acceder para habilitar manualmente el complemento. Gracias.

    • Hola Juan Felipe,

      El equipo de destino deberá incluir el control.

      Para lo que necesitas sería necesario realizar una aplicación que instale el libro Excel y el control en la carpeta de destino. No para usuarios.

      Saludos.

  • Tengo Office 365 e cargado mscomct2.ocx y en controles adicionales no me aparece el control Microsoft monthview Control, que puedo hacer para poder cargar el control y poder utilizarlo en 365 o no es compatible con ésta versión?, el control ya lo he utilizado en versiones 2003 y 2007.

      • Una duda, no tengo estos .ocx, ya he intentado registrarlos a través del CMD pero no me deja, sucede me aparecen errores de que "No se puede cargar el módulo "mscomct2.ocx" y que me asegure de que esta alojado en System32 en mi caso, que mas puedo hacer?

        • Hola Cesar,

          Como se indica en los comentarios deberás localizar el archivo mscomct2.ocx en Internet (sitio seguro) o en otro equipo que tenga una versión anterior de Excel y pegarlo en la ruta indicada:
          C:\\Windows\system32\.

          Saludos.

  • Buenas,
    He logrado crear el formulario e insertar el Monthview y en mi PC funciona perfecto, pero cuando comparto el archivo con otras personas no lo pueden utilizar porque el objeto no existe. Hay alguna manera de insertarlo mediante código o evitar que los demas usuarios tengan este problema?

  • Hola,

    en el punto 7 del control del month view no me aparece "caption" en la ficha alfabética.
    Omitiendo eso, el resultado final es que cuando hago click en la columna se me abre la ventana pero sin el calendario y me salta un error.

  • Buenos dias

    Ya realice esto en mi equipo y funciona perfectamente, pero este archivo lo envie por correo y no funciona, esto porque sucede.

    Agradezco la ayuda

  • Hola, he registrado el MSCOMCT2.OCX a través de la cónsola de comandos y obtuve respuesta de registro correcto pero, no me aparece en Controles adicionales del VB.

    Si pruebo desde la pestaña Desarrolador, Insertar> Más controles, Registrar personalizado... al intentar cargar el MSCOMCT2 obtengo: "El archivo seleccionado no contiene controles ActiveX de autorregistro."

    Ha forma de corregir esto?

    Gracias por compartir.

  • Hola, tengo una libro con excel 2016-32 con win7-64. Tengo creado el calendario para introducir fechas en 2 columnas. Hasta aquí todo bien, pero tengo el problema que la fecha y mes del calendario no cambia, sigue estando la fecha del día que lo cree, con lo que cuando pasen unos meses tengo que ir yendo para atras. Supongo que tendré que cambiar algo en propiedades (ya borré la fecha que aparecía). ¿hay alguna forma de que ponga el día actual? Gracias de antemano

      • Casi perfecto, Ahora me aparece abajo la fecha de hoy, pero el calendario sigue en el mes en el que se creo. En propiedades de Monthview en Value sigue la misma fecha, a no ser que la cambie manualmente. ¿que debo cambiar? ¿se puede añadir alguna instrucción para que actualice Value? Gracias de antemano

        • de momento he hecho un apaño colocando un botón en el formulario, junto al calendario, para que actualice la fecha y vaya al mes correcto, pero me gustaría que esto se pudiera hacer automático al abrirlo y sin el botón. Gracias

          • Inserta en la macro de tu hoja Mi_Calendario.Value = Date

            Esto hará que tu calendario se muestre en el día de hoy.

            Saludos.

  • Hola, se que ya posiblemente han preguntado esto pero yo no he logrado solucionarlo, me pasa lo mismo, tenia el control y me funcioana bien, luego de una reinstalacion todo se perdio, ya no logro poner e funcionar el mscomct2 de ninguna manera, lo he descargado varias veces, lo he activado con el CMD he hecho todo lo leido en la web y foros y aun no logro que me aparezca el control en los controles adicionales, siempre me sale el error de "el archivo seleccionado no contiene controles activex de autoregistro". Por favor ayuda.
    Existe otra forma de poner fechas en formularios? Tengo que generar muchos recibos de caja menor y con diferentes fechas, por favor me pueden ayudar? DOnde puedo enviar el archivo de ejemplo? Gracias

  • Hola, realice cada paso; sin embargo al colocarme sobre la celda de fecha aparece el formulario pero no muestra el calendario.

  • Listo ya aparece, me funciono cuando elimine las siguientes lineas de comando:
    Private Sub UserForm_Activate()
    ..
    ..
    End Sub

  • Cordial saludo,

    Estoy realizando el procedimiento pero al ejecutar (seleccionar la columna C) me genera el userform pero sin el calendario, y este sale en la esquina superior izquierda, (no sale al lado de la celda seleccionada), ayuda por favor, si es posible enviarme a mi correo... el archivo excel con la macro, actualmente uso excel 2010, windows 7 - 32 bits

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.