Control Calendario en Excel 2010

Por muchos años los usuarios de Excel tuvimos acceso al Control Calendario que es un control ActiveX que nos permite mostrar una interfaz amigable al usuario para elegir una fecha. A pesar de ser un control ampliamente utilizado por millones de usuarios de Excel, Microsoft decidió removerlo de Office 2010.

En realidad este control era parte de Access y fue incluido desde la versión 2.0 que fue la primera versión de Access que agregó el soporte para controles ActiveX. Sin embargo, al ser un control muy versátil, muchos usuarios de Excel llegamos a utilizar el control MSCAL.OCX para incluirlo en nuestros propios formularios.

El problema con el que nos enfrentamos hoy en día es que existen varias aplicaciones VBA desarrolladas con versiones anteriores de Excel que hacen uso de este control y al intentar utilizarlas en Excel 2010 obtenemos un error. O tal vez queremos volver a utilizar este control en nuestros desarrollos VBA pero nos encontramos con la noticia de que este control ya no está incluido. En esta ocasión te mostraré en tres pasos cómo puedes seguir utilizando el Control Calendario en Excel 2010.

NOTA IMPORTANTE: Este procedimiento funciona solamente si tienes Office 2010 de 32 bits sin importar si está corriendo sobre Windows de 32 o 64 bits. Pero si tienes Office 2010 de 64 bits, entonces no podrás utilizar más este control y deberás buscar otras alternativas.

Paso 1. Registrar el Control Calendario en Windows

Ya que este control fue completamente removido de Office 2010, es necesario descargar el archivo MSCAL.OCX para poder registrarlo en tu equipo. Para descargar este archivo haz clic aquí. Para registrar el control calendario en Windows de 32 bits debes colocar el archivo MSCAL.OCX en la siguiente ubicación: C:WindowsSystem32.

Control calendario en Excel 2010

Si tienes Windows de 64 bits, entonces la ubicación del archivo MSCAL.OCX debe ser: C:WindowsSysWow64. Ahora que tenemos el archivo en la ubicación correcta debemos avisarle a Windows sobre la existencia del control y para eso debemos registrarlo.  Haz clic en el botón inicio de Windows y en la caja de ejecución coloca el siguiente comando (pero no pulses Entrar):

regsvr32 C:WindowsSystem32MSCAL.OCX

Registrar el control calendario en Excel 2010

Si tienes Windows de 64 bits el comando a utilizar es el siguiente:

regsvr32 C:WindowsSysWow64MSCAL.OCX

Si tienes Windows Vista o Windows 7, al terminar de introducir el comando pulsa la combinación de teclas Ctrl + Mayús + Entrar. Esta combinación de teclas es para indicar a Windows que deseas ejecutar este comando como el Administrador del equipo y se mostrará una ventana de advertencia pidiendo tu autorización para realizar cambios al equipo. Si por el contrario tienes Windows XP será suficiente con pulsar la tecla Entrar. Una vez ejecutado el comando anterior se mostrará una ventana de confirmación:

MSCAL.OCX registrado correctamente

Paso 2. Cambiar el nivel de notificaciones de usuario

Si tienes Windows XP no es necesario que realices este paso y puedes ir directamente al registro del control en Excel descrito en el paso 3. Pero si tienes Windows Vista o Windows 7 debes cambiar el nivel de notificaciones de usuario de Windows y para ello debes ir al Panel de control > Cuentas de usuario y protección infantil > Cuentas de usuario > Cambiar configuración de Control de cuentas de usuario. Se mostrará el siguiente cuadro de diálogo:

Habilitar control de calendario en Excel 2010

Desplaza el selector de nivel hasta la opción No notificarme nunca y haz clic en Aceptar. Windows te pedirá que reinicies el equipo y una vez que lo hagas estaremos listos para registrar el Control Calendario en Excel 2010.

Paso 3. Registrar el Control Calendario en Excel 2010

El primer paso para realizar el registro del Control Calendario es ir a la ficha Programador y hacer clic sobre el botón Insertar y seleccionar el comando Más controles que se encuentra en la sección Controles ActiveX:

Calendar Control en Excel 2010

Se mostrará el cuadro de diálogo Más controles y deberás pulsar el botón Registrar personalizado:

Registrar control de calendario en Excel 2010

Al pulsar el botón se abrirá un nuevo cuadro de diálogo que nos permitirá seleccionar el archivo MSCAL.OCX que fue registrado en Windows en el primer paso de este artículo y que puede estar en C:WindowsSystem32 o en C:WindowsSysWow64 si tienes Windows de 64 bits. Así que ve a la ubicación donde colocamos el archivo, selecciónalo y pulsa el botón Abrir. Como resultado se mostrará el cuadro de diálogo Más controles con el Control Calendario seleccionado:

Calendar Control 11.0 en Excel 2010

Al pulsar el botón Aceptar podrás insertar el Control Calendario en la hoja de Excel tal como insertamos cualquier otro control ActiveX:

Control Calendario insertado en una hoja de Excel 2010

Ejemplo de uso del Control Calendario

Si nunca has utilizado el Control Calendario, es un buen momento para hacer un ejemplo sencillo de manera que puedas aprender a utilizarlo. Ya con los pasos anteriores tenemos una hoja de Excel que contiene este control. Ahora debemos insertar un botón de comando ActiveX:

Usar el Control Calendario en Excel 2010

Haz doble clic sobre el botón para insertar el siguiente código:

Private Sub CommandButton1_Click()

	Range("E10").Value = Calendar1.Value

End Sub

Este código modificará el valor de la celda E10 para mostrar la fecha seleccionada en el calendario. Una vez guardados los cambios podemos probar el funcionamiento de este código seleccionando una fecha del calendario y pulsando el botón de comando de la siguiente manera:

Ejemplo del Control Calendario en Excel 2010

Recuerda que este tutorial ha sido escrito especialmente para instalar y usar el Control Calendario en Excel 2010 de 32 bits. Si haces uso de este control y deseas compartirlo con alguien que tiene una versión inferior de Excel no habrá problema, pero si la otra persona también tiene Excel 2010 será indispensable que realice la instalación del control MSCAL.OCX en su propio equipo tal como lo hemos descrito en este artículo.

Por último, no olvides regresar el nivel de notificación de usuario que hicimos en el Paso 2 al nivel predeterminado de manera que mantengas el nivel de seguridad adecuado en tu equipo.