



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

- EDITOR VISUAL BASIC. Abrimos el editor de Visual Basic.
Abrir el libro deseado
Guardar con la extensión *.xlsm. Libro habilitado para macros.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
- INSERTAR FORMULARIO
Ir a: Barra de menús
Insertar
UserForm. Insertará un formulario vacío.
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.
Ir a: Ventana Propiedades
Clic Ficha Alfabética. Muestra las propiedades en orden alfabético.
Aplicar los valores a la propiedad UserForm:
Propiedad Valor Name Mi_Formulario Caption Calendario Height 152 Width 144
- CONTROL: MONTHVIEW
Ir a Panel: Cuadro de Herramientas
Botón derecho del ratón
Controles adicionales. Mostrará ventana de controles.
Activar la casilla: Microsoft MonthView Control 6.0 (SP4). O la versión disponible.
Pulsar el botón Aceptar. Cierra ventana e inserta el control en el cuadro de herramientas.
Ir a: Cuadro de herramientas
Clic sobre MonthView. Activamos el control para insertarlo en el formulario.
Ir al Formulario
Clic en el interior. Insertará el control de calendario.
Ir a: Ventana Propiedades
Clic Ficha Alfabética. Muestra las propiedades en orden alfabético.
Aplicar los valores a la propiedad del control MonthView:
Propiedad Valor Name Mi_Calendario Caption Calendario
- VISTA DE CÓDIGO DEL USERFORM. Insertamos el código para el formulario.
Ir a: Barra de menús
Ver
Código; O también, Atajo de teclado F7.
Escribir el código 1:
Option Explicit
Private Sub Mi_Calendario_DateClick( ByVal DateClicked As Date)
ActiveCell.Value = DateClicked
Unload Mi_Formulario
End Sub
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.
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.
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.
Ir a: Hoja1 del libro Excel
Clic sobre la celda deseada de la columna C. Mostrará formulario con el calendario.
Seleccionar el mes y año deseado
Clic sobre el día. Insertará la fecha en la celda.


- Consultar:
NECESITO MUCHA INFORMACION DE 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.
Hola David,
Puedes localizar el archivo mscomct2.ocx de algún otro equipo con versión anterior o en internet y pegarlo en tu equipo, se registra en VBA y listo.
Saludos.
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 Nico,
No ese posible, excepto si hacemos una aplicación o complemento que incluya el control.
Saludos.
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.
Hola Pascual,
Si no aplicamos el nombre el control no funciona.
La propiedad "caption" del control se encuentra al tener seleccionado el control deseado UserForm1.
Saludos.
Hola, en el punto 7 se marca poner Calendario en caption, esto se indica seleccionando la forma interior. Tengo el mismo caso que el compañero que aparece la forma calendario pero no es visible el month view en excel.
Hola Glenda,
El nombre es Mi_Calendario o el que tengas aplicado en el resto de código.
Saludos.
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 Joan,
Ya respondimos a Nico por la misma cuestión. Es necesario incluir el control por si el otro equipo no lo incluye.
Saludos.
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 Pilgrin,
Al parecer el archivo ocx, no permite el registro pudiendo ser que e archivo no sea original de versión Excel anterior o esté dañado.
Saludos.
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
Hola Xavy,
Para que el calendario muestre la fecha actual puedes insertar el código en el formulario (no en el módulo)
Private Sub UserForm_Activate()
Mi_Calendario.Today
End Sub
Saludos
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 Juan G,
El mensaje de error se produce generalmente al tener un control de 32 bits en un sistema de 64 o a la inversa. Si puedes verifica en otro equipo de 32 bits.
Saludos.
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
Gracias, con lo mismo arregle el mio.
Saludos.
Como le puedo hacer para poder ponerlo en una celda en especifico ?
Hola Sarai,
La macro la puedes ejecutar en la celda que deseas.
Saludos.
Si pero me deja hacerlo solo en la columna 3 y yo quiero en especifico la celda "A1" por ejemplo
Como quedaria la progrmacion?
Hola Sarai,
En el apartado 2 de INSERTAR MACRO EN HOJA 1, cambia el código: If ActiveCell("A1") Then, por: If ActiveCell("A1") Then
Saludos.
Hola chicos tengo una consulta, como puedo aplicar esta macro a varias columnas.
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