6 febrero, 2025

VALIDAR FECHA EN TEXTBOX Y GRABAR LOS DATOS EN UNA HOJA DE EXCEL

Esta nueva entrada la considero como una de las más importantes de este blog. Lo que pretendo mostrar con ella es la forma de validar el formato de una fecha cuando introducimos el dato a través de un textbox y además, y esto es lo importante, la forma de grabar ese dato y almacenarlo una hoja de Excel.

Este ejemplo es el inicio y la base para hacer cualquier programa de almacenaje o base de datos, dado que a través de la macro podemos ir introduciendo una serie de datos (y validándolos) hasta construir una base de datos completa en la que después realizar cálculos o cualquier cosa que nos planteemos.

Lo primero que vamos a hacer es construir en una hoja (lo podemos hacer en un userform), un pequeño formulario para introducir los datos, donde mediante un botón se grabaran los mismos en otra hoja.

Supongamos que usamos la «hoja1» de nuestro libro y pulsamos en la ficha «Programador» y luego en
«Insertar». A continuación insertamos desde «Controles ActiveX» un Botón de comando (en la macro CommandButton1). Con este botón activaremos la validación y la posterior grabación del dato si es correcto.

Seguidamente insertamos un Cuadro de texto (en la macro TextBox1) que es donde vamos introducir la fecha con un formato específico.

Una vez que tengamos correctamente compuesta nuestra hoja, entramos en el editor de Visual Basic y pegamos la siguiente macro en la hoja1 del proyecto.

Private Sub CommandButton1_Click()
Dim i As Double
Dim final As Double
Dim j As Double
Dim actual As Double
'introducimos la función validarfecha para que evalúe los datos introducidos en el TextBox1
'y mostramos una condición, si los datos no tienen formato de fecha entonces mostrar mensaje que está entre comillas:
validarfecha = IsDate(TextBox1.Value)
If validarfecha = False Then
MsgBox "DEBES INTRODUCIR EL SIGUIENTE FORMATO PARA LA FECHA 00/00/0000"
Else
'si los datos con correctos, se graban en la hoja2 en A1 y así sucesivamente
If validarfecha = True Then
For i = 1 To 1000
If Hoja2.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next
Hoja2.Cells(final, 1) = CDate((TextBox1))
'despues de grabar los datos mostramos mensaje confirmando grabación de datos
MsgBox "LOS DATOS HAN SIDO GRABADOS CORRECTAMENTE"
'limpiamos los datos ya grabados del Textbox1
TextBox1.Value = Empty
End If
End If
End Sub


Los datos cuando se graben pasarán a la hoja2, tal y como se ordena en la macro. En caso de no tener el formato adecuado, no se grabarán.

Pues eso es todo, nada más y nada menos 🙂

Como siempre, espero que os sea de utilidad.

Descarga el archivo pulsando enVALIDAR Y ALMACENAR FECHA

 

Comparte este post

5 comentarios en «VALIDAR FECHA EN TEXTBOX Y GRABAR LOS DATOS EN UNA HOJA DE EXCEL»

  1. Efectivamente Anónimo, tienes toda la razón. La macro estaba recogiendo el valor del textbox como si fuese un texto y al grabar los datos en la hoja2 invertía el mes por el día. Ya está solucionado, basta con sustituir la línea de código "Hoja2.Cells(final, 1) = Textbox1.value" por Hoja2.Cells(final, 1) = CDate((TextBox1)).CDate aplica formato de fecha a los datos introducidos en el Textbox y permite su correcta grabación.Muchas gracias por comentarlo y por participar. Saludos.

        1. Hola Jack:

          Incluye despues de esta línea de código:

          Hoja2.Cells(final, 1) = CDate((TextBox1))

          Esta:

          Hoja2.Cells(final, 2) = Format(Date, "MMMM")

          Pondrá al lado de la fecha que has indicado el mes en el que has guardo los datos.

          Saludos.

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies