En mi tarea reciente, se me pidió que aceptara la entrada del usuario. Un valor de entrada fue la fecha de nacimiento y, por supuesto, debe ser una fecha. Lo que estaba haciendo es almacenar la entrada en un tipo de datos variante. Esto hizo que el código no tuviera errores y el código aceptaba cualquier valor que el usuario le diera. A continuación se muestra el código:
Dim dob As Variant dob = Application.InputBox ("Ingrese su fecha de nacimiento")
Este fue, por supuesto, un enfoque incorrecto, ya que el usuario puede ingresar cualquier valor que no sea una fecha válida.
Lo que quiero es hacer que mi código detecte cualquier fecha no válida y pedirle al usuario que ingrese una fecha válida y finalice la subrutina.
Aquí está el código que permite a los usuarios poner solo una fecha válida como entrada.
Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Ingrese su fecha de nacimiento") En caso de error Ir a 0 Debug.Print dob Salir Sub Errorhandler: MsgBox "Ingrese una fecha válida". End Sub
Cuando ejecute el código anterior, le pedirá que ingrese su fecha de nacimiento. Si ingresa una fecha no válida, le pedirá que ingrese una fecha válida y finalice el procedimiento.
¿Como funciona?
Lo primero y más importante que hemos hecho es usar la variable de tipo Fecha para almacenar la fecha esperada. Ahora, si intenta almacenar un valor que no es una fecha válida, lo hará a través de un error de "falta de coincidencia de tipo".
A continuación, detectamos este error usando elEn caso de error Gotomanejador de errores.
En caso de error Ir a Errorhandler dob = Application.InputBox ("Ingrese su fecha de nacimiento") En caso de error Ir a 0
Usando On Error, saltamos el control a la etiqueta Errorhandler, que está justo antes de la instrucción End Sub. Por lo tanto, se le pide al usuario que ingrese una fecha válida y el sub finaliza.
Manejador de errores: MsgBox "Ingrese una fecha válida". End Sub
Si el usuario pone una fecha válida, entonces el control fluye normalmente y la entrada se guarda en la variable dob. Hemos puesto la sub instrucción Exit para que el control no vaya a errorhandler y finalice el procedimiento allí mismo. Así que ponga todas sus declaraciones finales antes de exit sub. Y eso es.
Así que sí, chicos, así es como restringen al usuario para que ingrese solo una fecha válida. Avíseme si tiene alguna duda con respecto a las fechas de VBA o cualquier otra consulta relacionada con Excel / VBA. Pregúntenos en la sección de comentarios a continuación.
Insertar sello de fecha y hora con VBA | Para ingresar la marca de tiempo cuando se llenó una celda específica usando este Código VBA. Si ingresa cualquier valor en la Columna A, la celda adyacente en la columna B se llenará con la hora de entrada automáticamente.
Fecha y hora en VBA | Encuentre todos los temas sobre fecha y hora en VBA en esta página.
¿Cómo podemos formatear la fecha a través de VBA? | Aprenda a formatear la fecha usando VBA en Excel. Tomemos un ejemplo para comprender cómo y dónde podemos formatear la celda en un número de fecha corto.
Articulos populares:
50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.
La función BUSCARV en Excel | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.
CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico. La función Countif es esencial para preparar su tablero.
Cómo usar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.