Veremos una forma sencilla de disponer de un Calendario perpetuo (desde 1900 a 2100), introduciendo un Control ActiveX en nuestra hoja de cálculo.
Pedía ayuda un lector a este respecto:
Funciona exactamente igual para Excel 2003 o Excel 2007, tan sólo deberemos insertar desde los Cuadros de control.
Buscaremos en Excel 2003 la barra de herramientas Cuadro de controles o en Excel 2007 desde el menú Programador > Controles > Insertar > Controles ActiveX
desde donde seleccionaremos en ambos casos el mostrar Más controles:
Para Excel 2003
y para Excel 2007
Buscaremos ahora un Control llamado Control de calendario 11.0
Ya sólo nos queda entonces desplegar este Cuadro de control sobre nuestra hoja de cálculo, adecuándolo al tamaño deseado, podremos ver algo así:
Sin embargo, sin lo que explicaré a continuación, es sólo un objeto; lo más importante es relacionarlo con nuestras celdas; lo que haremos desde sus propiedades, a las que accederemos bien presionando el botón derecho del ratón sobre el 'Calendario' o bien desde el menú Programador > cuadro de Controles > Propiedades
Existen multitud de propiedades para configurar este Calendario, pero sin duda la más importante es la propiedad LinkedCell, con la que indicaremos dónde deseamos que nos muestre la fecha que seleccionemos sobre el control de calendario, en mi caso le he marcado la celda B13.
Por último para activar el control y poder trabajar sobre el no deberemos olvidar cerrar la Ventana de propiedades, y deshabilitar el 'Modo Diseño'; sólo de este modo tendremos plenamente operativo nuestro Calendario.
Por supuesto esta fecha la podremos utilizar para cualquier proposito, pero esto será otra cuestión...
Pedía ayuda un lector a este respecto:
...quisiera saber como hacer para que al momento de querer introducir una fecha en una celda de excel,me aprezca un pequeño calendario en el cual pueda señalar el día, el mes y el año, es decir algo parecido al que aparece en las propiedades de fecha y hora de la computadora.... |
Funciona exactamente igual para Excel 2003 o Excel 2007, tan sólo deberemos insertar desde los Cuadros de control.
Buscaremos en Excel 2003 la barra de herramientas Cuadro de controles o en Excel 2007 desde el menú Programador > Controles > Insertar > Controles ActiveX
desde donde seleccionaremos en ambos casos el mostrar Más controles:
Para Excel 2003
y para Excel 2007
Buscaremos ahora un Control llamado Control de calendario 11.0
Ya sólo nos queda entonces desplegar este Cuadro de control sobre nuestra hoja de cálculo, adecuándolo al tamaño deseado, podremos ver algo así:
Sin embargo, sin lo que explicaré a continuación, es sólo un objeto; lo más importante es relacionarlo con nuestras celdas; lo que haremos desde sus propiedades, a las que accederemos bien presionando el botón derecho del ratón sobre el 'Calendario' o bien desde el menú Programador > cuadro de Controles > Propiedades
Existen multitud de propiedades para configurar este Calendario, pero sin duda la más importante es la propiedad LinkedCell, con la que indicaremos dónde deseamos que nos muestre la fecha que seleccionemos sobre el control de calendario, en mi caso le he marcado la celda B13.
Por último para activar el control y poder trabajar sobre el no deberemos olvidar cerrar la Ventana de propiedades, y deshabilitar el 'Modo Diseño'; sólo de este modo tendremos plenamente operativo nuestro Calendario.
Por supuesto esta fecha la podremos utilizar para cualquier proposito, pero esto será otra cuestión...
Muchísimas gracias
ResponderEliminarMuy buena la descripción, gracias
ResponderEliminarEn Excel 2010, aunque en la ayuda habla de: ..."como el Control de calendario 12.0"... en el apartado de Insertar Controles Activex, en el cuadro de dialogo de MÁS CONTROLES no aparece. Tampoco ningún control que menciones la palabra calendar. ¿Ha desaparecido esta opción en la versión de 2010?...
ResponderEliminarMuchas gracias
Efectivamente no aparece en la versión 2010 este control, sin embargo existen un par de librerías que deberías instalar: MSCOMCT2.OCX y MSCAL.OCX.
ResponderEliminarse localizan en:
C:\Windows\System32\Mscomct2.ocx
y se agrega a la lista de referencias en el proyecto de vba como:
Microsoft Windows Common controls-2 6.0 (SP6)
Puedes ver en un enlace de ayuda de Microsoft qué pasos seguir y con qué problemas te llegarías a encontrar...
control calendario.
Espero te sea de utilidad, la verdad, es que este asunto es bastante lioso y existe poca documentación 'oficial' al respecto.
Por mi parte sigo empleando Excel 2007, y sólo para momentos o consultas muy puntuales 2010.
Slds
Quedo muy agradecido por tú rápida respuesta.
ResponderEliminarLo veré y si tengo algún problema, volvería a contactar en el Foro.
Conocí este foro a través de: http://trucosexcel.blogspot.com/ y me han producido, los dos blogs, una muy grata impresión.
Lo dicho: Muchas gracias
lusoluso
como hago para que el calendario se oculte, de tal forma que al celeccionar la celda la cual designe lo despliegue y pueda seleccionar la fecha y se vuelva a ocultar
ResponderEliminarHola,
ResponderEliminarpara mostrar el Calendario al seleccionar determinado rango de celdas, deberás intercalar la llamada a ese objeto con el método INTERSECT.
Echa un vistazo a
ejemplo VBA de INTERSECT
Espero te oriente
Un saludo
Pues no, no me ha orientado mucho.
ResponderEliminarSaludos.
Inserte el control calendar 11.0 a un proyecto de excel, esta trabajando bien al seleccionar las fechas, el problema empieza cuando protejo la hoja porque necesito protejer formulas y otros datos, ahi queda bloqueado tambien el calendario. Hay alguna forma de dejar libre el calendario aunque la hoja este protegida? Si alguien sabe como hacerlo lo agradecere mucho. elfimo2001@yahoo.com
ResponderEliminarHola Elfimo,
Eliminaryo probaría en primer lugar configurar la Protección de hojas permitiendo modificar objetos, alguna vez, haciéndolo, permite trabajar sobre él...
La otra opción es la de siempre, esto es, al construir tu código, justo antes de mostrar el calendario desproteges la hoja, y justo después de insertar el valor en una celda, proteges de nuevo la hoja...
Slds
Saludos, ExcelForo.
ResponderEliminarA ver si puede ayudarme con este problema. He creado un control ActiveX de imagen en una hoja de Excel 2007. Al clicarlo, y mediante programación VBA, hago que se cree un control de calendario y lo activo. Una vez elegida una fecha en él, ésta se recoge en una celda y el control de calendario se borra. El problema es que cada vez que se crea y activa el control de calendario al clicar sobre la imagen, se abre también la ventana "Propiedades de calendario". Hay que dar a Cancelar para poder operar con el calendario como se ha descrito arriba. He intentado definir esas propiedades en tiempo de ejecución pero no logro evitar esa ventana. ¿Alguna idea?
Muchas gracias por su atención.
Hola!!,
Eliminarpues en principio lo único que se me ocurre es que de alguna manera se ha quedado activado en 'Modo diseño', por eso al clicar sobre el te abre la ventana de Propiedades.
Si puedes verificar esto???
Slds
Verified. De hecho, no es la ventana Propiedades del 'Modo diseño', sino otra modal que puede verse clicando con el botón derecho sobre el calendario seleccionado y del menú emergente hay que elegir Objeto calendario>Propiedades.
EliminarGracias.
No sé que decirte,
Eliminarpuedes enviarme el fichero a
excelforo@gmail.com
y le echo un vistazo?
Slds
excelente foro amigo.. tengo una pregunta como hago para que una vez insertado el calendadrio la fecha me la asigne a la celda que tenga el foco en ese momento.. gracias
ResponderEliminarMuchas gracias!!
Eliminarsuponiendo que estés empleando esta versión de Excel (ha cambiado para Excel 2010), sólo marca en la propiedad LinkedCell la celda donde quieras la fecha seleccionada.
Um cordial saludo
Hola amigo, primero que todo MUCHAS GRACIAS por tan buen foro. Tu explicación ha sido de mucha ayuda en una planilla que estoy haciendo.
ResponderEliminarSolo tengo una pregunta: Cada vez que se activa el pop del calendario, aparece con la fecha en se creó. Cómo puedo hacer que tome la fecha actual? (Probé con =TODAY(), pero no funcionó... Hay alguna forma?)
Muchas gracias
Tavo
Hola,
Eliminarprueba lo siguiente...
En las Propiedades, busca la propiedad Value y en ella escribe =TODAY()
Ahora mismo (por problemas con el PC) no puedo confirmártelo ya que sólo dispongo de la versión Excel 2010 y no tengo habilitados todos los controles...
Slds
Estimado, de nuevo muchas gracias por tu ayuda. Lamentablemente, no funcionó. Hice lo que me indicaste, pero no funcionó. si se te ocurre alguna otra manera.
EliminarAhora bien, no sé si será un problema de mi Excel, pero se comporta extraño, ya que el campo VALUE no registra el valor =TODAY() (ni =HOY())... lo ingreso, guardo y luego sigue en blanco...
Si se te ocurre algo, me dices por favor.
Gracias de nuevo.
Tavo
Hola Tavo...
Eliminarpor descartar, ¿has probado con =Date?, así cogerá la fecha del día (la que tenga tu sistema)... también podrías probar con =NOW()
Ahora mismo no se me ocurre otra manera.
Ya comentas.
Slds cordiales
No Funciona ni con date, ni con now(), ni con today... Parece que el problema pueda estar en que la propiedad Value espera la fecha en el formato especificado por la propiedad Format, en mi caso dtpShortdate. Si alguien da con el truquillo que lo comparta por favor...
ResponderEliminarMuchas Gracias
En cuanto pueda reinstalar versiones anteriores, intentaré buscar la solución.
EliminarSlds cordiales
hola : tengo una consulta que hacer , es referente a un cuadro de control de asistencia y e aplicado unas formulas que en algunas celdas se cumplen y en otras no , quiero saber por que suceden estas diferencias y si hay alguna manera de enviarles mi caso por email. gracias
ResponderEliminarHola Ivan,
Eliminarpuedes enviarme tu consulta a
excelforo@gmail.com
Slds