Mensaje de Error en un TextBox en excel

Tengo un formulario en el cual ingreso la información de pagos recibidos de una cartera de clientes en el cual ingrso fecha, gestor de cobro, tipo de servicio y tengo una validación en la cual ingreso el valor del deposito este es un textbox con formato de decimal es decir xxx, xxx. 00 y luego otro textbox en donde ingreso el valor del corte de caja con el mismo formato esto para validar que los documentos estén en balance, en el textbox de fecha el experto Dante Amor de esta página me proporciono un código para que si no ingreso una fecha valida me aparezca un msgbox donde me informa que debo ingresar una fecha con el formato DD/MM /AAAA de lo contrario no avanza al siguiente control.

En el caso de los controles donde ingreso los valores quisiera que un mensaje similar a este se presentara cuando ingreso un valor no válido es decir introducir algo que no sea un numero o deje el control en blanco porque actualmente cuando una de estas dos cosas sucede me aparece un error y me finaliza el formulario y tengo que volver a ingresar de nuevo la información del pago

A continuación dejo el código que me proporcionaron en el textbox del fecha y el código que tengo en los textbox donde ingreso los valores antes mencionados.

Espero que me puedan ayudar mil gracias

Este es el código del textbox fecha

Private Sub Fecha_Exit(ByVal cancel As MSForms.ReturnBoolean)
'Act.Por.Dante Amor
'si salir igual a 0, entonces significa que estás cerrando el form
If salir = 0 Then Exit Sub
If Fecha = "" Then
MsgBox ("Ingrese una fecha con formato DD/MM/AAAA")
Me.Fecha = ""
Me.Fecha.SetFocus
cancel = True
Else
If Not IsDate(Fecha) Or Len(Fecha) <> 10 Then
MsgBox ("Ingrese una fecha con formato DD/MM/AAAA")
Me.Fecha = ""
Me.Fecha.SetFocus
cancel = True
End If
End If
End Sub

Private Sub UserForm_Activate()
'Por.Dante Amor
'se inicia la variable salir con 1
salir = 1
End Sub
'
Private Sub UserForm_QueryClose(cancel As Integer, CloseMode As Integer)
'Por.Dante Amor
'si estás cerrando el form salir cambia a 0
If CloseMode = 0 Then
salir = 0
End If
End Sub

la variable salir esta declarada al inicio del formulario Dim Salir

Este es el código que uso en los textbox Vl_Corte y Vl_Deposito que tiene formato de moneda (sin símbolo de moneda)

Private Sub Vl_Corte_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean)
Vl_Corte = Format(Val(Vl_Corte), "###,###,##0.00")
End Sub

Private Sub Vl_Corte_Exit(ByVal cancel As MSForms.ReturnBoolean)
corte = Vl_Corte.Value
Lb_Diferencia.Caption = Format(depo - corte, "#,#0.00")
End Sub

Private Sub Vl_Depo_beforeupdate(ByVal cancel As MSForms.ReturnBoolean)
Vl_Depo = Format(Val(Vl_Depo), "###,###,##0.00")
End Sub

Private Sub Vl_Depo_Exit(ByVal cancel As MSForms.ReturnBoolean)
depo = Vl_Depo.Value
Lb_Diferencia.Caption = Format(depo - corte, "#,#0.00")
End Sub

Gracias Saludos desde Honduras

1 respuesta

Respuesta
1

H o l a:

Cambia los controles Vl_Depo y Vl_corte, por estos:

Private Sub Vl_Depo_Exit(ByVal cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Vl_Depo = "" Or Not IsNumeric(Vl_Depo) Then
        MsgBox ("Ingrese un valor correcto en Depósito")
        Vl_Depo = ""
        Vl_Depo.SetFocus
        cancel = True
    Else
        depo = CDbl(Vl_Depo.Value)
        If Vl_Corte <> "" Then
            corte = CDbl(Vl_Corte.Value)
        Else
            corte = 0
        End If
        Lb_Diferencia.Caption = Format(depo - corte, "#,#0.00")
    End If
End Sub
'
Private Sub Vl_Corte_Exit(ByVal cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Vl_Corte = "" Or Not IsNumeric(Vl_Corte) Then
        MsgBox ("Ingrese un valor correcto en Corte")
        Vl_Corte = ""
        Vl_Corte.SetFocus
        cancel = True
    Else
        corte = CDbl(Vl_Corte.Value)
        If Vl_Depo <> "" Then
            depo = CDbl(Vl_Depo.Value)
        Else
            depo = 0
        End If
        Lb_Diferencia.Caption = Format(depo - corte, "#,#0.00")
    End If
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas