Condiciones de textbox en formularios VBA

Por medio del presente les envío un cordial saludo, así mismo quisiera solicitar de su apoyo para poder entender y solucionar un problema al usar formularios de Visual Basic.

El Problema en cuestión es el siguiente:

Quisiera que el programa hiciera una validación de los datos ingresados en las cajas de texto.

Por ejemplo:

En mi textbox 1, tengo la variable fecha. Quisiera que se validara los datos ingresados por el usuario en dicho textbox. Si puso texto o algún otro dato no valido, mostrar "Valore incorrecto en la variable Fecha".

---Este es mi punto de partida---

Private Sub CommandButton1_Click()
Dim Fila As Integer
Fila = 2
While Cells(Fila, 1) <> ""
Fila = Fila + 1
Wend
Sheet1.Cells(Fila, 1) = tb1.Text
Sheet1.Cells(Fila, 2) = tb2.Text
Sheet1.Cells(Fila, 3) = tb3.Text
Sheet1.Cells(Fila, 4) = tb4.Text
Sheet1.Cells(Fila, 5) = tb5.Text
Sheet1.Cells(Fila, 6) = tb6.Text
Sheet1.Cells(Fila, 7) = tb7.Text
Sheet1.Cells(Fila, 8) = tb8.Text
Sheet1.Cells(Fila, 9) = tb9.Text
tb1 = Empty
tb2 = Empty
tb3 = Empty
tb4 = Empty
tb5 = Empty
tb6 = Empty
tb7 = Empty
tb8 = Empty
tb9 = Empty
tb1.SetFocus
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

----  ----- ----   ----  ----- ----   ----  ----- ----   ----  ----- ----   ----  ----- ----

Respuesta
1

[Hola 

Te paso la macro actualizada


Valora la respuesta para finalizar saludos!

Private Sub CommandButton1_Click()
    Dim Fila As Integer
    Fila = 2
    While Cells(Fila, 1) <> ""
    Fila = Fila + 1
    Wend
    '
    If Not IsDate(tb1) Then
        MsgBox "Valor incorrecto en la variable Fecha"
        tb1.Text = ""
        Exit Sub
    End If
    '
    Sheet1.Cells(Fila, 1) = tb1.Text
    Sheet1.Cells(Fila, 2) = tb2.Text
    Sheet1.Cells(Fila, 3) = tb3.Text
    Sheet1.Cells(Fila, 4) = tb4.Text
    Sheet1.Cells(Fila, 5) = tb5.Text
    Sheet1.Cells(Fila, 6) = tb6.Text
    Sheet1.Cells(Fila, 7) = tb7.Text
    Sheet1.Cells(Fila, 8) = tb8.Text
    Sheet1.Cells(Fila, 9) = tb9.Text
    tb1 = Empty
    tb2 = Empty
    tb3 = Empty
    tb4 = Empty
    tb5 = Empty
    tb6 = Empty
    tb7 = Empty
    tb8 = Empty
    tb9 = Empty
    tb1.SetFocus
End Sub

buenos días, aprecio muchísimo tu ayuda y es correcto el código, hace lo que indicas. Sin embargo quisiera que el programa no continuará la captura de los demás textbox si el tb1 no está ingresado correctamente o en su defecto vacío.

Saludos, Pedro.

Pon esto en el evento exit del tb1 


valora la respuesta para finalizar saludos!

Private Sub tb1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'
'Por Adriel ortiz
'
    If Not IsDate(tb1) Or tb1 = "" Then
        MsgBox "Valor incorrecto en la variable Fecha"
        tb1.Text = ""
        Cancel = True
        Exit Sub
    End If
End Sub

quitas el exit sub 

¡Muchísimas Gracias! Adriel Ortiz.

La respuesta a mis dudas y la solución al problema mencionado fue tu segundo comentario:

Private Sub tb1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'
'Por Adriel ortiz
'
    If Not IsDate(tb1) Or tb1 = "" Then
        MsgBox "Valor incorrecto en la variable Fecha"
        tb1.Text = ""
        Cancel = True
        Exit Sub
    End If
End Sub

Saludos y Dios te bendiga!

Pedro Araujo.

1 respuesta más de otro experto

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas