No logro hacer SetFocus en un textbox. Excel VBA. ¿Cómo lo podría hacer?

Estoy diseñando un formulario para controlar unos parámetros de la base de datos. Este formulario funciona como un "semaforo".

El problema que me encuentro es que cuando le codifico que si el textboxt es inferior a otro label me lo comunique y ponga el foco en dicho textbox.

Private Sub OASFT_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If OASFT.Value <= OASF2 Then
MsgBox ("Valor nulo")
OASFT.SetFocus
OASFT.Value = Sheets("STOCK PAPER").Range("OASFT")
Exit Sub
Else
Sheets("STOCK PAPER").Range("OASFT") = ""
Sheets("STOCK PAPER").Range("OASFT") = OASFT.Value
OASFT.Enabled = False
OASFT.BackColor = vbWhite
End If
End if

Al salir del textbox  y hacer click en otro me salta el MSGBOX  "valor nulo" pero no vuelve hacer el SetFocus a esa celda y  mantiene el focus en el textbox al cual habia hecho click.

En el caso del código el textbox se llama OASFT

¿Qué error estoy cometiendo?

¿El problema podría ser el evento en el que he creado el código?

1 respuesta

Respuesta
1

Si estás en el evento Exit  para no salir del textbox, se utiliza Cancel = True

Prueba así:

Private Sub OASFT_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If OASFT.Value <= Val(OASF2.Caption) Then
    MsgBox ("Valor nulo")
    OASFT.SetFocus
    OASFT.Value = Sheets("STOCK PAPER").Range("OASFT")
    Cancel = True
  Else
    Sheets("STOCK PAPER").Range("OASFT") = ""
    Sheets("STOCK PAPER").Range("OASFT") = OASFT.Value
    OASFT.Enabled = False
    OASFT.BackColor = vbWhite
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas