Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comentarios
Ahora, existen tres alternativas posibles para poder trabajar con Calendarios en MS
Excel 2010, la primera, consiste en utilizar el Control Data Picker desarrollado por
Sam Radakovitz; la segunda, es descargar el control mscal.ocx e instalarlo en nuestra
PC, pero además de ello es necesario registrar dicho control para poder usarlo sin
ningún problema, el único inconveniente es que en Windows 8 este control ya no
permite ser registrado, por lo que en última instancia ya no puede ser usado; y la
tercera, que a mi parecer suele ser la mejor opción por ser un control de fácil uso y
además muy comprensivo y entendible a la hora de programarlo, es utilizar el control
MonthView.
Veamos a través de un ejemplo muy sencillo como ingresar fechas en una Hoja de
Trabajo de Excel (Hoja de cálculo) usando un calendario para realizar la selección de la
fecha y posteriormente se inserte en la celda actual o celda seleccionada.
Nota: para el desarrollo de esta ayuda, asumo que el lector (participante y/o usuario)
tiene pleno conocimiento o nociones mínimas de como activar la Pestaña Programador
de su MS Excel 2010, además de como activar y entrar en el entorno de desarrollo de
VBA, es decir el Editor de VBA.
En caso de no saberlo, por favor diríjase a este video de corta duración (2 Minutos) en
el cual se explica de manera clara estos requerimientos mínimos.
Mail: jarmoncada@gmail.com 1
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Inicialmente y es claro que lo primero que debemos hacer es abrir un Archivo de Excel
nuevo y guardarlo en una ubicación conocida, con un nombre conocido.
Mail: jarmoncada@gmail.com 2
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Mail: jarmoncada@gmail.com 3
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Me siguen…
A esta altura ya hemos superado la parte más complicada del ejemplo, ahora lo que
haremos es dar un nombre a nuestro formulario que de momento se llama
UserForm1, para ello debemos modificar las Propiedades (Name y Caption) del
Formulario a través de la Ventana de propiedades. Es necesario recordar que debemos
tener activo el Formulario para cambiar sus propiedades, es decir tenerlo seleccionado.
A continuación,
Ahora solo nos resta colocar un nombre al Objeto MonthView y alterar la Propiedad
ShowToday (Para mostrar la fecha actual del ordenador en el calendario), para ello
seleccionamos el objeto recién insertado y en la Ventana de propiedades alteramos la
Propiedad Name que de momento se encuentra como MonthView1, y establecemos
en True la Propiedad ShowToday.
Yo le he puesto mvMiCalendario a la propiedad Name.
Lo último que nos queda es ajustar el tamaño de mi " mvMiCalendario" dentro del
Formulario. Ver Figura 4.
Mail: jarmoncada@gmail.com 4
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Mail: jarmoncada@gmail.com 5
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Para hacer más didáctico el ejercicio, solo nos ocuparemos de la Columna "E" de
nuestra Hoja de trabajo, es decir, programaremos el Formulario de manera que
cuando nos ubiquemos en cualquier celda de la Columna "E" nuestro Formulario se
dispare y nos permita seleccionar una fecha que posteriormente será insertada en la
celda seleccionada.
¿Cómo se hace eso? En la Ventana del Explorador de proyectos del Editor de VBA,
seleccionamos la Hoja1, a continuación damos Click derecho para mostrar el menú
contextual, y seleccionamos la Opción Ver código. Damos Click en él. Ver Figura 5.
Dentro de estas dos líneas de código que aparecieron nuevas, y que corresponden al
Evento (Worksheet_SelectionChange), cuya ejecución se da cuando realizamos un
movimiento de celda en la Hoja1, o dicho de una mejor manera, cada vez que ocurre
un cambio de selección en las celdas, el evento es ejecutado.
Ver Figura 7.
Mail: jarmoncada@gmail.com 6
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 6. Cargamos el Evento por default que corresponde a una Hoja de trabajo.
Figura 7. Código para lanzar el Formulario cuando se seleccione una celda de la Columna "E".
Mail: jarmoncada@gmail.com 7
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Mail: jarmoncada@gmail.com 8
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Dentro de estas dos líneas de código que aparecieron nuevas, y que corresponden al
Evento (mvMiCalendario_DateClick), cuya ejecución se da cuando realizamos un Click
en alguna fecha del calendario, o dicho de una mejor manera, cada vez que hacemos
Click en una fecha, el evento es ejecutado.
Mail: jarmoncada@gmail.com 9
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 9. Menú contextual que muestra la opción Ver código del objeto mvMiCalendario.
Figura 10. Ventana de código del Objeto mvMiCalendario y Evento cargado por default.
Mail: jarmoncada@gmail.com 10
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 11. Código para pasar el valor de fecha del calendario a la celda activa o seleccionada.
Click
Figura 11 - 12. Al hacer Click en una fecha del calendario esta se carga en la celda activa o
seleccionada.
Click
Mail: jarmoncada@gmail.com 11
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Como este Evento no nos sirve para el objetivo al cual queremos llegar, debemos
cambiar o invocar al Evento UserForm_Activate. Para ello debemos hacer Click en la
segunda lista desplegable que aparece en la parte superior de la Ventana de código y
hacer Click en el elemento Activate, vemos como aparece el evento antes
mencionado. Ver Figura 14.
Mail: jarmoncada@gmail.com 12
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 13. Seleccionamos el Objeto UserForm y se carga el Evento por defecto asociado a este
Objeto.
Figura 14. Selección del elemento Activate de la segunda lista desplegable de la Ventana de
código.
Mail: jarmoncada@gmail.com 13
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 15. Código para mostrar el Formulario junto a la celda seleccionada de la columna "E".
Figura 16. El Formulario con el Calendario aparece justo al borde derecho de la celda
seleccionada y además al hacer Click en el, se inserta la Fecha del calendario.
Mail: jarmoncada@gmail.com 14
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Figura 17. El Formulario con el Calendario aparece justo al borde derecho de la celda
seleccionada y además al hacer Click en el, se inserta la Fecha del calendario.
Mail: jarmoncada@gmail.com 15
Control calendario en Excel 2010 con VBA Enero
Control MonthView 2013
Es necesario aclarar que para desplazarse por los años, simplemente basta con hacer
un Click sobre el año que aparece en el calendario, con lo cual nos aparecen unas
flechas de desplazamiento donde podemos aumentar, disminuir o desplazarnos por los
años para seleccionar la fecha que más nos convenga.
Espero este manual aclare sus dudas sobre el uso del control MonthView para el
manejo de fechas en MS Excel 2010.
¡Saludos!
Mail: jarmoncada@gmail.com 16