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.

DTPicker

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).

DTPicker2

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.

DTPicker3

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.

DTPicker4

:: Descargar EXCELeINFO – Control calendario en celda.xlsm

You may also like...

30 Responses

  1. Logan says:

    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

  2. Logan says:

    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

  3. Alex says:

    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

  4. omar says:

    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

    • Sergio Alejandro Campos says:

      Sigue el mismo procedimiento pero inserta otro control en la otra celda donde quieras la fecha final.

  5. JuanV. Sepúlveda says:

    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

    • sergioacamposh says:

      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.

  6. peDRINK says:

    En mi menú de insertar más controles, no está Microsoft Date and Time Picker Control 6.0 (SP6). ¿Cómo lo agrego?

  7. C. Andrés Góngora Petrovich says:

    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

  8. C. Andrés Góngora Petrovich says:

    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

  9. CAmilo says:

    ola Sergio esto funciona para poner en varias celdas o solo se puede uno por hoja?

  10. claudy says:

    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

  11. JoaoM says:

    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?

  12. JoaoM says:

    Como recibo notificaciones de respuesta de este hilo (tema)

  13. Yvón says:

    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.

  14. Luis Parra says:

    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.

  15. Marco Felix says:

    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

  1. July 15, 2013

    […] TITULO Mostrar control de calendario al elegir una celda en Excel […]

  2. September 19, 2013

    […] En caso contrario, de manera opcional te recomiendo leer este artículo Mostrar control de calendario al elegir una celda en Excel. […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: