Otro lector me plantea la duda que expongo en el título de la presente entrada. Si comprendí bien su inquietud, Excel solo deberá permitir el ingreso de fechas en una celda, pero a su vez dicha fecha no podrá contener un año distinto al que tenga configurada el sistema.
Trabajaremos con funciones y validación de datos para resolver este problema. Primero vamos a consultarle a Excel que fecha tiene el sistema, con la función =HOY():
bien... en mi PC tengo que hoy es 16/12/2010
[+/-] Ver el resto / Ocultar
Ahora en la celda B2 extraeremos el año:
seguimos bien, estamos en el año 2010.
Con estos datos ya podríamos armar la solución para mi lector, pero como podemos observar debemos hacer uso de dos celdas auxiliarles. Podríamos "achicar" esto y anidar ambas funciones, para utilizar solo una celda auxiliar:
en la barra de fórmulas pueden apreciar las dos funciones anidadas.
Pero (y siempre el "pero", por suerte) también estamos en condiciones de omitir por completo el uso de celdas para llevar adelante esta tarea. Podemos ingresar esas funciones en el formulario de "validación de datos", logrando así excelentes resultados.
Si no me falla la lógica, el usuario solo podrá ingresar una fecha cualquiera, siempre y cuando el año de esa fecha sea igual al año de la fecha que tenga nuestro sistema. Entonces: configuraremos la validación entre dos fechas (para seguir bien con el ejemplo, continuemos utilizando al año 2010 como referencia, con fines solamente ilustrativos): 01/01/2010 y el 31/12/2010.... cualquier otro valor será rechazado. Meses y días serán siempre iguales (principio y fin de año), pero el año deberá variar.
Ahora son las 02:00 a.m.... mañana tengo que viajar 350 kms y no me puedo dormir, por eso prendí la PC y abrí mi blog, encontrándome con esta y otra consulta. No tengo muchas ganas de buscar en que entrada lo puse (esa tarea te toca =) ), pero existe una función en Excel para "armar" una fecha válida a partir de tres parámetros: año, mes y día. Y esa función se llama, lógicamente, =Fecha(año, mes, dia)
fijate: con tres números que paso como argumento armo en B2 una fecha válida
Bien, vamos a los bifes. Vamos a meter la función de la imagen superior dentro de la validación de datos, de la siguiente forma:
listo.
Utilicé la opción "entre" para determinar donde empieza y donde termina el año: el primer día de enero y el día treinta y uno de diciembre. A esos datos los puse fijos, es decir, con valores reales, constantes. Pero si observas bien el primer argumento de FECHA()... es una función, o mejor dicho, dos funciones anidadas: =AÑO(HOY()). O sea que este primer argumento será variable y siempre se completará con el año actual, como quedó demostrado en las imágenes dos y tres de esta entrada.
Puedes ir a la pestaña "mensaje de error" y configurar algo que alerte convenientemente al usuario sobre la restricción que aplicaste:
luego presionamos "aceptar" y nuestro trabajo queda finalizado, como te muestro a continuación:
ya vimos que mi sistema tiene configurado el año 2010. Y observamos como me deja, por ejemplo, ingresar la fecha correspondiente a mi cumpleaños número 36
¿Y el 12/01/2011, sagrada fecha en la que cumpliré mis primeros 37 añitos de vida?
nop... deberé esperar al año entrante.
Y, para dejar todo correctamente concluido, te muestro que sucede exactamente lo mismo con años anteriores al actual:
Espero que sea lo que estás buscando y te ayude en tu proyecto.
Suerte y cualquier cosa me avisas.
Muy buen blog. Lo voy a visitar seguido, porque estoy volviendo a incursionar en macros Excel y me es muy práctico.
ResponderEliminarGracias!
AnyMa: muchas gracias por tu mensaje, es de gran valor para mi trabajo. Ah, y termino de hacerme seguidor del tuyo, que está espectacular, esos juegos que te exprimen la cabeza (aunque soy bastante malo haciéndolos) me gustan, por que ejercitan en serio las neuronas.
ResponderEliminarsuerte y cualquier cosa que necesites con las macros me avisas.
me pueden ayudar
ResponderEliminarSi, decime que duda tenes y vemos como lo solucionamos.
ResponderEliminar2. Para la macro BienestarTrabajador:
ResponderEliminaro Solicitar un valor por pantalla.
o Mover el valor a una variable de nombre temperatura de tipo Integer.
o Validar si el valor de temperatura está entre 15 y 40 grados.
o Si el valor de temperatura es menor de 18 grados mostrar una caja de dialogo o mensaje con el texto “Sugerir ropa de abrigo ”
o Si el valor de temperatura está entre 18 y 23 mostrar una caja de dialogo o mensaje con el texto “Temperatura ideal para trabajar ”
o Si el valor de temperatura es mayor o igual a 23 grados mostrar una caja de dialogo o mensaje con el texto “Sugerir ropa ligera”
o Si el valor esta fuera de rango mostrar una caja de dialogo o mensaje con el texto “El valor ingresado no es válido”
vas a tener que enviarme un archivo con el ejemplo, así trabajo sobre él y entiendo un poco mas el planteamiento.
ResponderEliminarno omitas explicarme paso a paso (dentro del libro) en que necesitas ayuda
gracias