Pretendo cancelar evento AfterUpdate() pero variable no definida-.

Este sencillo código:

If Len(USUARIO) < 2 Then
MsgBox "Este campo exige que se informen DOS caracteres.", vbInformation.
Cancel = True
Exit Sub
End If

que me funciona correctamente si lo asocio al evento Exit de un TextBox -cancela el proceso si no se cumple la condición: se escribe un solo carácter-, no me funciona si lo asocio, como me exige el programa, al evento AfterUpdate: Excel me manda el mensaje de Error de compilación No se ha definido la variable y el editor me sombrea en amarillo la línea Cancel.

¿Cómo puedo forzar la cancelación del proceso de no cumplirse la condición, haciendo que el foco se quede en el campo Usuario y consecuentemente no se vaya al siguiente punto de tabulación?

1 respuesta

Respuesta
1

Visita:

Cursos de Excel y Macros - YouTube


El evento Exit contiene el parámetro Cancel

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
End Sub

El evento AfterUpdate no contiene el parámetro Cancel, por eso no lo puedes utilizar

Private Sub TextBox1_AfterUpdate()
End Sub

En ese caso revisa el siguiente ejemplo:

Private Sub TextBox1_AfterUpdate()
  If validacion Then
    TextBox1.SetFocus
    Exit Sub
  End If
End Sub

Recomendación del día:

Hipervinculo excel. Curso de excel. Ir en automático a otra hoja y seleccionar la celda deseada. - YouTube

Hola Dante  : - )   lo que creo me pones en el ejemplo:

Sub USUARIO_AfterUpdate()
If Len(USUARIO) = 1 Then
MsgBox "Este campo exige que se informen DOS caracteres alfabéticos.", vbInformation
Me.USUARIO.SetFocus
Exit Sub
End If
End Sub

... ignora la instrucción 'Me.USUARIO.SetFocus', por lo que el foco pasa al siguiente 'TabIndex' desencadenando con ello el evento que precisamente es lo que quiero evitar...

[El 'suceso' que quiero impedir se produce igual si la regla de validación empleada es "If Len(USUARIO) < 2 Then"...]

Y por qué quieres usar AfterUpdate, para eso existe el evento Exit.

Debes emplear el evento adecuado para la validación que requieres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas