MsgBox con un If...Then

Buenas, a todos. Tengo un formulario de VBA y dentro de este un TexBox en el que se introducen importes. Quiero que cada vez que se introduzcan importes que sean menores a 50.000 y mayores a 1.000.000 aparezca un mensaje que diga "Fuera del alcance del sistema" . Uso el siguiente código:
Private Sub TexBox3_Change()
If Val(TexBox3.Value) < 50000 Or Val(TexBox3.Value) > 1000000 Then
MsgBox "Fuera del alcance del sistema"
End Sub
Cuando pruebo con 48.000 por ejemplo (y con cualquier otro número no adecuado al rango de alcance), no me sale el mensaje predeterminado.
¿Alguien sabe qué estoy haciendo mal?

1 respuesta

Respuesta
1
Solo veo que no estas finalizando con el End If
A mi me funciono bien.
Sustituye por este codigo:
Private Sub TextBox3_Change()
If Val(TexBox3.Value) < 50000 Or Val(TexBox3.Value) > 1000000 Then
MsgBox "Fuera del alcance del sistema"
End If
End Sub
Chequea si el nombre del Textbox que estas usando es el correcto, es decir si coincide con el del código, de otro modo no se ejecutara.
Disculpa otro punto es el evento que estas utilizando, en vez de utilizar el change utiliza el AfterUpdate, ya que con el change te validara cada vez que el contenido de la celda cambie, es decir te validara la cantidad cada vez que oprimas una tecla.
Private Sub TextBox3_AfterUpdate()
If Val(TextBox3.Value) < 50000 Or Val(TextBox3.Value) > 1000000 Then
MsgBox "Fuera del alcance del sistema", vbExclamation, "Fuera del rango"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas