Calendario automático desde cualquier Celda en Excel
-->Calendario automático desde cualquier Celda en Excel: Es un aplicativo desarrollado por un usuario de AyudaExcel de gran utilidad, sirve como fechador ya que nos permite a través de una ventana desplegable (calendario en un userform) seleccionar una fecha de forma interactiva, en términos simples es un calendario automático que aparece de forma intuituiva solo si se selecciona una celda vacía o una celda que contenga una fecha y que se encuentre dentro de una columna de datos que contenga como titulo la palabra «fecha» en la fila 1, si se dan todas las condiciones antes mencionadas podemos aprovechar este recurso.
Quizás quieras hacer un pequeño cambio a la macro…
Como se menciono lineas arriba, para que este calendario aparezca de forma automática es necesario que en A1 ó B1 ó C1 ó …. N1 (asumirenos que N es la última columna) exista un título que contenga la palabra «FECHA», pero si deseas modificar para que no sea solo en esta fila, debemos hacer lo siguiente:
- Presionamos ALT + F11
- Se abrirá el editor de visual basic
- Doble Clic en Thisworkbook
- Aparecerá un código a la derecha donde debemos cambiar el número de Fila.
Si trabajas con base de datos…
Para aquellas personas que trabajan con base de datos donde deben indicar diferentes fechas como: nacimiento, inicio de relación laboral, cese entre otras es una herramienta indispensable que puede ahorrarte mucho tiempo, personalemente lo recomiendo.
Con respecto a como fue hecho este archivo debo decirles que se han utilizado herramientas un poco avanzadas como Apis de Windows y módulos de clases, mas adelante estaré preparando alguna forma para que puedan migrar este archivo como complemento a cualquier libro.
Me re sirvio, mil gracias!!
Hola, de nada, saludos.
excelente
Hola, gracias, saludos.
Consulta como le hago para que esta macro funcione en otra hoja excel?
Buenas tardes como puedo modificar la macro para que solo sea para la celda C4
Perdon, algo que omiti, es que la palabra Fecha esta en la columna A, fila 4
Hola, lo que tendrías que hacer es leer sobre eventos de hoja, saludos.
AL momento de abrir el calendario y seleccionar cualquier fecha, me la cambia siempre a el mismo dia pero en febrero, por que ocurre esto?
Hola, por favor escribanos al correo ([email protected]) para ayudarle. Saludos.
ME GUSTARÍA SABER COMO PUEDO EXTENDER EL RANGO DE «FECHA» MAS ALLÁ DE LA COLUMNA «N»??
SALUDOS.
Entre a visual básico y modifique los parámetros. Saludos.
Aun va un dia adelantado, hoy martes 04/02 para el archivo es miercoles….
Esto ya se había corregido, parece que es una configuración regional en tu computadora. Tendríamos que ver con que día comienza la semana si es domingo o lunes. Saludos.
Buenas tardes Gustavo me esta dando problema en estos codigo, no veo cual es me pueden ayudar
If UCase(Sh.Cells 1 Target.Column)) Like «Fecha» And_
Target.Row >1 And_
Target.Cells.Count = 1 And_
IsEmpty(Target.Offset(-1, 0)) = False Then
Anuel, que error te aparece.
Donde hay que cambiar el año?
Hola Gustavo, he revisado los comentarios hacia atrás y me encuentro que el error que tengo yo otros ya lo han tenido, y es que las fechas no coinciden, van desfasadas un día, hoy, por ejemplo es domingo 12 de mayo del 2019 y el calendario popup dice lunes 12 de mayo del 2019.
He leído que lo has corregido antes, pero vuelve a pasar, qué parámetro o en que parte del código se debe cambiar para cuando pasa esto, he buscado en el código de la macro pero no lo encuentro. Gracias y por cierto, excelente aporte, saludos desde Chile.
Ricado, cambia el año, he probado con la fecha que me indicas y sale bien.
Hola,
La fecha de tu calendario me sale un día adelantada.
la configuración de fecha de mi ordenador es la correcta, pero por ejemplo
Lunes 06/07/2020 en el calendario emergente tuyo que el lunes es 05/07/2020.
Dónde debo cambiarlo en el código para que en tu calendario el lunes se 06/07/2020 ??
Muchas gracias.
Hola, en su configuración regional de su PC verifique con que día comienza la semana, en este caso comienza con Lunes. Saludos.
CALENDARIO AUTOMÁTICO DESDE CUALQUIER CELDA EN EXCEL; esta genial, agradecería el hecho de que se pueda exportar a otros libros que ya uno tiene creados. Donde la aplicación funcione sin problema alguno. Gracias.
Funciona bien lo del calendario, solo tengo un pequeño problema, conforme voy bajando las celdas, el calendario baja hasta desaparecer de la pantalla, como hago para que aparezca al lado de cada celda y no se baje?
Espero su respuesta, gracias
Keyla, esta programado en el evento select de la hoja, eso quiere decir que cada vez que selecciones una celda , el calendario deberá aparecer lineas abajo, en tal caso, modifica el top para que lo veas en otra posición. Modifica la macro desde los eventos de la hoja.
Buenos días…. Grandioso aporte … le tengo 2 preguntas :
1) Estando ya en el año 2019 por alguno motivo se debe colocar una fecha del año 2020 y el calendario esta hasta el año 2019 como se puede adjuntar un nuevo año?
2) en una base de datos de por ejemplo mas de 100 lineas, cuando se posiciona sobre la linea 30 y adelante no se ve el calendario… la pregunta es si e puede colocar el calendario en una posicion fija Gracias por contestar
Serge
Acabo de revisar y si hay mas años hasta el 2030, revisa bien por favor. Con respecto a tu otra consulta modifica aqui: Calendario.Top = ActiveCell.Top + 160
_Buenos días, es que mira que he querido implementarlo en un formulario, pero no logro la forma.
En el código le doy «Calendario.Show» y sale error de compilación.
Me podrías ayudar, por favor, ya que me gustó mucho tu calendario
Camilo pero si ya esta dentro de un formulario, a que te refieres.
Imagino que la persona, se refiere a que el desea implementarlo o copiarlo en un formulario personal que el tiene creado. O sea, en otro formulario independiente a donde se encuentra el calendario.
Exclente Aporte ! , muy buen trabajo.
saludos.
Excelente herramienta, le daré una mirada pues soy un amante de las macros.
Los felicito (portal excelnegocios y ayudaexcel) y agradezco que la hayas compartido.
GRACIAS POR EL APORTE.
ME GUSTARÍA SABER COMO PUEDO EXTENDER EL RANGO DE «FECHA» MAS ALLÁ DE LA COLUMNA «N»??
SALUDOS.
Ya lo resolví. Gracias.
como hizo?
Gracias por sus comentarios.
Christian, solo basta que la columna donde quieras que aparezca una fecha tenga como rótulo o título la palabra «Fecha …».
Gracias por el aporte, es muy útil, pero me serviría que los años comiencen en 1900 y no en 2000, por favor como puedo modificar ese detalle,gracias.
Enhorabuena, muchas gracias, un excelente trabajo.
Como podría hacerlo para que el calendario aparezca en todas las celdas de la columna que lleve la palabra «Fecha» y no solo en la siguiente que esté vacía. Por ejemplo que pudiera salir el calendario en B4,B5,B6,… mientras que B2 y B3 estuvieran vacías.
Muchas gracias,
Lee el artículo ahi se indica como cambiar eso.
Puede ayudar?
cuando valido celda completa nombre, después grabo se borra la validación… puedo hacer para que no pase esto…
Nancy al parecer es un problema de tu pc.
como hacer para que la fecha de inicio sea menor a 2000 necesito 1990
Hola Javier, ingresa al código de la macro y luego vas a Formularios, Calendario, ves el código y reemplaza el año 2000 por el año que desees, son 3 registros para reemplazar, saludos.
es muy buen a aporte y a los que se les traba con el cuerso solo dando clcik en la siguiente forma es como podemos avanzar con los cursores sin ingresar de nuevo la fecha, yo lo que hice para ajustarlo a la columna que quise solo agregue columnas en le hoja pero ahora el formulario sigue saliendo en la posición anterior
Muchas felicidades y gracias por el aporte. Perdón como podría utilizarlo en un archivo o más bien en otro libro de excel que ya tengo.
Muchas gracias por la ayuda.
Hola, lo más recomendable sería que adaptes tu información a este archivo que ya está programado. Saludos
Buen día excelentes aportes, quisiera saber la forma de exportar el calendario a mi libro de trabajo.
Saludos Srs. Excel Negocios
De antemano felicitaciones por su portal y muchas gracias por su contribucion intelectual para el engrandecimiento del conocimiento.
Quiero comentarles que quise usar el archivo Calendario automático en cualquier celda Excel.xls pero me sale un error que dice que se debe actualizar ciertas funciones para un sistema windows de 64 bites.
Agradeceria me ayuden realizando esas correcciones ya que soy un principiante y no se que cambios hay que hacer.
Gracias de antemano.
Hola Vicente, es correcto, se actualizará el archivo a versión de 64 bits a mas tardar hasta la próxima semana. Saludos
Es posible que al abrirse el calendario se posicione en la fecha actual?
He intentado hacer lo que indicas pero no lo he logrado, voy a investigar acerca del archivo.
esta muy bueno tu aporte solo he observado que cuando te paras en dicha celda o culumna te obliga a que tienes que volver a marcar la fecha, como sugerencia seria bueno que al hacer un clic en la celda recien despliegue el cuadro de fecha y antes no y pase como cualquier celda.
por que esta observacion cuando uno esta revisando la informacion va de un lado a otro viendo dicha informacion y cuando pasa por la celda que contiene fecha, le pide que la volvamos a marcar, cuando esto no deberia suceder.
esperando que me entiendas te agradesco tu aporte de antemano
Oscar lo tendré en cuenta para hacer una próxima modificación.
al dar click con el mouse en la siguiente celda se soluciona este inconveniente
Muy bueno, el calendario me está quitando mucho trabajo en mi excel. Unas preguntas, si me pongo en la celda no me deja borrar el valor, ¿cómo se podría hacer esto? Y otra sería, que solo me saliera, si la celda está en blanco, ¿esto también se puede hacer? Y la última, ¿se puede poner en todas las celdas y no solo en la siguiente rellena?
Estoy mirando por mi cuenta, soy programadora, pero no en este lenguaje y me cuesta un pelín, pero mil gracias por el gran aporte, es muy práctico!
Puedes modificar el evento Workbook_SheetSelectionChange para evitar que sala en celdas llenas.
Buen día podría ayudarme ya que cuando le doy desplazar con la rueda del ratón hacia abajo el calendario no aparece mas se pierde es como si también lo desplazará
Recuerda que el calendario aplica a una celda, si sales de la pantalla ya no lo verás.
Buen dia. Excelente este desarrollo pero tengo una pregunta. No tengo mucho conocimiento de macros y necesito que el calendario me aparesca en diferentes columnas en mas de 2000 celdas. Como lo puedo modificar para que me aparezca en todas estas ya que solo me aparece en unas celdas y no se como replicarlo.
Muchas gracias.
Tendrías que ingresar al codigo y editar el rango de aplicación, un poco complicado si es que no sabes lo básico de macros.
Hola, esta genial y funciona correctamente, pero me sigue fallando en el dia de la semana que está adelantado.
Gracias.
Puedes volver a descargar, ya ha sido actualizado lo del día adelantado.
Excelente, algo muy util y pratico para agregar rapido una fecha….esto se puede aplicar para todos los libros excel que tengo?,en caso que no, como se puede activar o configurarlo para otro libro…espero su respuesta.
gracias
Tendría que convertirse en un complemento de excel para tenerlo en todas las hojas de excel.
calendario en celda de excel.
Muy bueno el calendario desplegable, pero sin embargo, tiene la fecha adelantada en cuanto al día, por ejemplo: hoy es jueves 29 de septiembre de 2016, pero el calendario indica jueves 30 de septiembre de 2016. Sería bueno corregir este error.
ya corregí las fehcas.
amigo, como estas? descargue el calendario automatico desde caulquier celda, pero me sale este error «Error de compilación»:
El código de este proyecto se debe actualizar para usarse en sistemas de 64 bits. Revise y actulice las instrucciones Declare, y acontinuación, márquelas con el atributo PtrSafe.
Agradezco su ayuda.
antes de Function agregale ptrsafe y listo.
esta excelente la ide pero el calendario falla, no pone las fechas, del dia correcto.
Roberto me podrías decir en que momento falla, por que lo he probado y todo va bien.
buenas tardes;
excelente post, pero creo haber detectado un bug en cuanto a los dias del calendario para capturar la informacion es bueno pero para darle la utilidad de calendario tiene desface en fechas.
saludos.
Puedes indicar detalles, yo vengo trabajando y no he tenido ningún problema.
los días no van con la fecha por ejemplo el día de hoy es lunes 1 de agosto de 2016 y el calendario automático de exel marca como lunes 2 de agosto
Revisaré lo que me indicas.
si quiero poner fecha en una fila mas abajo no aparece el calendario solo si se pone fecha en la fila 1
Por favor, si podrías colgar una modificación haciendo que el calendario se muestre en celdas especificas. cual seria el nuevo codigo?. Gracias
tiene un error de posicionamiento en las fechas
Yo tengo el archivo original de este calendario y el autor es otro y fue hecho para una ventana y no para la hoja, lamentable que otros se lleven la autoria que no les pertenece
Revisa la fuente que puse al inicio de la publicación, ahí esta el autor.
Amigo:
Estoy intentando de implementar hace días, esta operación en un planilla… sin éxito alguno, estaba intentado de realizar los mismo que tu, pero nada me resulta.
Podemos ponernos en contacto via mail..
saludos
Si Carlos, indícame con mayor detalle el problema, escríbeme.
Es posible utilizar este calendario en otro archivo? Como debo hacer la migración?
Gracias
Soy principiante y tengo una duda, ¿ como cambio el calendario a otra celda?, una celda que yo elija. Revise el código pero no encuentro donde cambiar las celdas.
selecciona la celda que quieras y ahí aparecerá el calendario.
Hola, me gustaría utilizar el calendario en mi excel, solo aparece en las 10 primeras filas, que valor tengo que modificar para que aparezca en toda la columna..
Muchas gracias.
Yo también quiero ver lo excelente que es, pero tengo problema de compilación en «APIS ELIMINAR BARRA DE TITULO FORMULARIO»
Me pide actualizar el proyecto a 64 bits, revisar y actualizar la instrucción Declare y luego marcarlas con el atributo PtrSafe.
Saludos.
Hola, mi pc presenta el mismo mensaje de error, ya lo pudiste solucionar?
Gracias
Solamente deben escribir PtrSafe despues de escrbir Declare.
ejemplo:
Public Declare Function……….
Public Declare PtrSafe Function
debes agregar PtrSafe luego del Declare, guardar y listo
‘—————————————– APIS ELIMINAR BARRA TITULO FORMULARIO
Public Declare PtrSafe Function FindWindow Lib «User32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare PtrSafe Function GetWindowLong Lib «User32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare PtrSafe Function SetWindowLong Lib «User32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare PtrSafe Function DrawMenuBar Lib «User32» (ByVal hwnd As Long) As Long
Excelente calendario,
Lo probé y lo estoy usando.
Sin embargo, tiene un desface en 1 día respecto a la fecha actual.
Esto lo arreglas editando la línea del formulario de calendario:
Private Sub LlenarCalendario(fecha)
If Saltar = True Then Exit Sub
ifecha = fecha – Weekday(fecha, vbMonday) ‘+ 1
ffecha = ifecha + 41
Si te fijas, estás sumando un 1 de más, lo que provoca el desface.
Saludos.
Hola Daniel, espero estés muy bien. me puedes ayudar explicándome a que parte de la hoja me dirijo para modificarlo. me puedes enviar tú numero telefónico. Te agradecería mucho!
Modificando Monday por Thuesday