Mostrar control de calendario al elegir una celda en Excel
Este ejemplo que les comparto me ha sido útil al momento de crear formatos donde requiero que el usuario ingrese una fecha.
El problema surge cuando no se tiene definido si el formato de la fecha es DD/MM/AA o MM/DD/AA, sobretodo si la configuración definida en el Panel de control no correponde al mismo país.
Por eso, se me ocurrió que al momento de elegir la celda donde queremos introducir la fecha, nos salda el control de calendario y elegimos la fecha.
Cómo lo hago
Primero nos vamos a la pestaña Desarrollador (Programador en Excel 2010). En la sección Controles elegimos Insertar y elegimos el botón de la parte inferior derecha llamado Más controles.
Ver video Guía definitiva para el uso de Calendarios en Excel
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
En el video mostramos paso a paso cómo crear este ejemplo.
En la lista que aparecerá elegimos el control Microsoft Date and Time Picker Control 6.0 (SP6).
En la misma pestaña de Desarrollador damos click en el botón Modo diseño para adecuar el control al tamaño de la celda.
Dentro de Visual Basic para aplicaciones (Alt + F11), en el Objeto donde está el control, vamos a poner el siguiente código.
'Asignar el valor de Picker a la celda B2 Private Sub DTPicker1_Change() Range("B2").Value = DTPicker1.Value End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Si la celda elegida es B2, se muestra el Picker If Not Intersect(Target, Range("B2")) Is Nothing Then With DTPicker1 .Visible = True .Top = 15.75 .Left = 86.25 .Width = 145 .Height = 17.25 End With 'En todo caso se oculta Else DTPicker1.Visible = False End If End Sub
Y como resultado tenemos que cada vez que se elija la celda B2 saldrá el control de calendario para elegir una fecha y esta se reflejará en dicha celda.
:: Descargar EXCELeINFO – Control calendario en celda.xlsm
Buen dia Sergio
Agradezco mucho tu información acerca de excel, he aprendido muchas cosas leyendo tu blog, en este momento necesito un aplicativo o un marco en excel donde tengo una lista de fechas de nacimiento de empleados, y sacar un cuadro de dialogo avisando su cumpleaños ojala fuera automático al abrir el excel.
Otra es donde esta la fecha de ingreso de los empleados, y habilitar un mensaje cada 3 meses, para recordar la renovación del contrato, y ojala pudiera modificar en una segunda hoja una carta donde se modifique el nombre y la fecha.
No se si es mucho pedir pero vos eres un maestro y la verdad no se con que herramientas puedo hacer eso, yo programo en java y desconozco el código vba.Serias tan amable de poderme ayudar
mi correo andrex12@hotmail.com nos podemos poner en contacto por ahi.
Exitos
Hola Logan.
Para que todos aprendamos prefiero tocar el tema aquí mismo en el Blog.
Con respecto a lo que comentas, la lógica sería que al abrir Excel te avise si el día de hoy (cada que abres) tienes algún empleados cumpliendo año ??
De la renovación de contrato, se puede hacer que te muestre quiénes han pasado de los 3 meses o en una celda ponerle “Contrato vencido” en caso de que la fecha del contrato pasa los 3 meses, cómo ves ??
Con respecto a la segunda hoja, mejor te recomiendo usar Combinar correspondencia de Word.
Espero tus comentarios.
Me gusta lo que decís que cuando se abra automáticamente Salga un mensaje con la persona que cumple años, y lo mismo con la persona que tiene el contrato vencido y que ese aviso de contrato vencido tenga un botón donde combine la correspondencia de Word. Pero no se como hacerlo 🙁
no conozco la sintaxis de VBA, me podrías dar un ejemplo porfa.
Logan.
Revisa el siguiente artículo y adecúalo a sus necesidades.
http://blogs.itpro.es/exceleinfo/2013/09/23/mostrar-mensaje-de-los-que-cumplen-aos-el-da-de-hoy-en-excel/
Sergio.
Sergio, mi Excel, (2013 con W8.1 x64) no tiene ese control; Microsoft and time data picker control 6 (SP6) y si el Microsoft External ítem picker.
Que tengo que hacer para meterle esa librería?.
Recuerd oque tengo W8.1 y según el So algunas librerías las registra pero no funcionan en 8.1 y si en W8
Justo después de publicar este artículo publiqué otro para solucionar esta situación que comentas.
http://blogs.itpro.es/exceleinfo/2013/09/19/usar-el-control-date-and-time-picker-mscomct2-ocx-en-excel-sobre-windows-7-y-8-de-64-bits/
Hola Sergio vos podrías hacer un ejemplo de lo que necesito 😉
Primero nos vamos a la pestaña Desarrollador (Programador en Excel 2010). En la sección Controles elegimos Insertar y elegimos el botón de la parte inferior derecha llamado Más controles.
Hola Sergio vos podrías hacer un ejemplo de lo que necesito 😉
Sería que al abrir Excel te avise si el día de hoy (cada que abres) tienes algún empleados cumpliendo año, renovación de contrato, se puede hacer que te muestre quiénes han pasado de los 3 meses o un mensaje “Contrato vencido” en caso de que la fecha del contrato pasa los 3 meses, combinando correspondencia en word
Hola Sergio, excelente blog! Estaba intentando crear el calendario desplegable pero me sale “No se puede insertar el objeto” será que sabes porque sucede esto, uso la versión 2007. Gracias
Que tal.
Prueba lo que publico en este artículo. Tal vez sólo haya necesidad de registrar el control. http://blogs.itpro.es/exceleinfo/2013/09/19/usar-el-control-date-and-time-picker-mscomct2-ocx-en-excel-sobre-windows-7-y-8-de-64-bits/
Gracias! Intentaré solucionarlo.
Hola Sergio, antes que nada permiteme felicitarte por tu blog, por aportar tus conocimientos sin afan de recibir algo a cambio. Tambien quiero preguntarte como puedo hacer para que en una misma hoja pueda insertar dos calendarios, los uso para fecha inicial y final. Si me puedes ayudar te lo agradezco y si no llegas a poder por tus labores personales te entiendo y de todas maneras te agradezco. mi correo es omarherreraj@outlook.com
Sigue el mismo procedimiento pero inserta otro control en la otra celda donde quieras la fecha final.
Hola Sergio
Una pregunta, después de que pones el código en el módulo de visual basic, ¿que se hace?, ¿cómo se guarda?
Saludos y gracias por tu valiosa ayuda.
Juan V. Sepúlveda
Primero debes insertar el control del calendario y después pegar el código en el módulo.
Con respecto a tu pregunta de Cómo se guarda no la entiendo bien.
En mi menú de insertar más controles, no está Microsoft Date and Time Picker Control 6.0 (SP6). ¿Cómo lo agrego?
Revisa este artículo.
http://blogs.itpro.es/exceleinfo/2013/09/19/usar-el-control-date-and-time-picker-mscomct2-ocx-en-excel-sobre-windows-7-y-8-de-64-bits/
Gracias, Sergio.
Ya lo había hecho y no funciona.
Hola Sergio, Pude colocar el formulario y que se abra cuando elijo la celda pero, tengo dos inconvenientes:
1. El formulario se cambia de posición automáticamente de la celda D7 a la B2 (yo cambié el código de formulario para que se active en D7 y sí se activa en D7 y no en
Hola Sergio, Pude colocar el formulario y que se abra cuando elijo la celda pero, tengo dos inconvenientes:
1. El formulario se cambia de posición automáticamente de la celda D7 a la B2 (yo cambié el código de formulario para que se active en D7 y sí se activa en D7 y no en B2, pero el formulario se desplaza hacia esta ultima.
2. Cuando elijo la fecha no se registra ningún dato en D7, Puedo mover la fecha en el calendario pero no afecta a la celda
Gracias
ola Sergio esto funciona para poner en varias celdas o solo se puede uno por hoja?
Hola buenos dias! les planteo lo que necesito.
Tengo un formato en el cual llevo la fecha prevista y la fecha real, pero 15 dias antes de la fecha prevista quiero que la celda de fecha real cambie de color.
Ayudenme plis
Quisiera poder tener el calendario DTPicker que me diera para que acompañe segun la celda que seleccione en B, desde B2 hasta B50000 + -, es decir que;
si seleciono B45 este aparezca al lado de B45, si selecciono B210 aparezca al lado de B210 etc.
que acompañe segun la celda que selecciono
¿será posible? Sergio?
Como recibo notificaciones de respuesta de este hilo (tema)
Hola, hice tal cual indicas y me funciona, pero ahora mi problema es que la fecha, osea, el valor tengo que copiarlo a otra hoja, pero no me permite copiar, como puedo copiar la fecha y grabarla en otra hoja.
Se puede hacer que aparezca el calendario segun la celda que seleccione en B, desde B2 hasta B500 , es decir que;
si seleciono B45 este aparezca al lado de B45, si selecciono B210 aparezca al lado de B210 y que se cambie la fecha solo en esa celda.
buen dia sergio estoy teniendo problemas al tratar de utilizar el dpicker al ya tengo el control en mi toolbox ya corri cmd y me diso success pero al momento de seleccionar el control y tratar de usarlo en el comentario me muestra un error “Element not found” https://uploads.disquscdn.com/images/5b9e82061c5e9e8d51da7d0697b62fea9c1d446b2d61eef14dfb633f7d797089.jpg