Mensaje al introducir valor en un campo de formulario si cumple cierta condicion

Espero me puedan ayudar.

La cuestión es que aparezca un mensaje de advertencia, si el usuario introduce en un campo numérico de un formulario, un valor que supere en mas del 15%, el valor de otro campo del mismo formulario.

2 Respuestas

Respuesta
2

Se debe verificar el contenido del textbox, después de que terminas la captura, y eso sucede cuando te quieres salir del textbox, es por eso que voy a validar en el evento Exit:

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If Not IsNumeric(TextBox2) Then
        MsgBox "Captura un valor numérico"
        Cancel = True
        Exit Sub
    End If
    '
    '15% del textbox1
    valor = TextBox1 * 0.15
    '
    If CDbl(TextBox2) > valor Then
        MsgBox "El valor capturado supera el 15% del textbox1"
        Cancel = True
        Exit Sub
    End If
End Sub

El ejemplo anterior, es si en el textbox1 capturas el primer valor, en el textbox2 capturar el segundo valor que debe ser menor al 15% del primero valor.

Si el valor del textbox es mayor al 15% del valor del textbox1, entonces te envía el mensaje.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Grande Dante! Como siempre grandísimo verraco y maestro inigualable.

La solución propuesta resuelve a la perfección la problemática planteada.

Sin embargo, como poder cambiar el estilo al MsgBox al estilo de "Advertencia".

(Con el icono de Admiración y "Advertencia" en la parte superior)

Por más que pruebo, me sale error. Adjunto línea de código.

If CDbl(txt_importecierre) > valor Then
MsgBox ("Advertencia!" + Chr(13) + Chr(13) + "El importe de cierre supera en más de un 15% el importe de apertura")
Exit Sub

Quedaría así:

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If Not IsNumeric(TextBox2) Then
        MsgBox "Captura un valor numérico"
        Cancel = True
        Exit Sub
    End If
    '
    '15% del textbox1
    valor = TextBox1 * 0.15
    '
    If CDbl(txt_importecierre) > valor Then
        MsgBox "El importe de cierre supera en más de un 15% el importe de apertura", vbExclamation
        Cancel = True
        Exit Sub
    End If
End Sub

vbinformation para informar

Vbexclamation para la advertencia

Vbquestion para el signo de interrogación


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Dante por tu inestimable ayuda!

Adjunto la sentencia final.

MsgBox "El importe de cierre de la OTS es igual o supera el 115% del importe de apertura", vbExclamation, "Advertencia"

Respuesta
2
Textbox2.text = 15
if Textbox1.text > Textbox2.text then 
Msgbox" Es mayor a 15%"
exit sub
End if 

Me comentas saludos!!

Intentaré explicarme mejor:

En un formulario tengo la casilla importe de apertura y la casilla importe de cierre.

El importe de apertura puede ser cualquier valor,  "x".

Si se introdujese en el importe de cierre un valor superior a  "x * 1,15" es decir mas de un 15%, tendría que salir un mensaje de advertencia.

Además no tendría muy claro donde insertar esta parte en mi código. (si gusta se lo puedo pegar...)

Gracias por el interés y la colaboración.

Envíame tu archivo a [email protected] 

Me explicas con un ejemplo en tu archivo y lo solucionamos.

If txt_importeapertura = "" Then
    MsgBox "Ingrese un importe de apertura"
    txt_importeapertura.SetFocus
    Exit Sub
End If
    If txt_importecierre > txt_importeapertura * 0.15 Then
        MsgBox " supera el 15%"
        Exit Sub
    End If
txt_importecierre = Format(txt_importecierre, "#,##0.00")

Valoras para finalizar saludos!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas