Restricción de textboxsi no cumple con varias condiciones

Me ha surgido un problema que no consigo dar con ello, tengo un textbox llamado textbox1 y necesito restringir con una condicion es, al escribir cualquier letra necesito que siempre cumpla con la condición que si no empieza y finaliza con los siguientes símbolos;

Al empezar debe de tener <<*

Al acabar debe de tener *>>

Ejemplo  <<*TÍTULO*>>

Si no cumple que se borre y salga un msgbox "Debe de ingresar al principio los siguientes símbolos <<* y al final *>>

2 respuestas

Respuesta
1

Te recomiendo lo siguiente: Si el objetivo de capturar el dato, es pasarlo a una hoja, entonces, lo más práctico, cuando presiones el botón de "registrar en la hoja", es realizar las validaciones, por ejemplo:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    'validación del textbox1
    If TextBox1.Value = "" Then
        MsgBox "El dato debe estar capturado"
        TextBox1.SetFocus
        Exit Sub
    End If
    If Left(TextBox1.Value, 3) <> "<<*" Then
        MsgBox "El inicio del dato debe empezar con  <<*"
        TextBox1.SetFocus
        TextBox1.Value = ""
        Exit Sub
    End If
    If Right(TextBox1.Value, 3) <> "*>>" Then
        MsgBox "El final del dato debe terminar con  *>>"
        TextBox1.SetFocus
        TextBox1.Value = ""
        Exit Sub
    End If
    '
    MsgBox "El dato está correcto"
    'aquí debe continuar tu código
    'tu código
    '
End Sub

Si el dato no cumple con las condiciones, la macro limpiará el textbox1 y regresar al textbox1 para que realicen correctamente la captura. 

Si la captura es correcta, entonces pones las instrucciones para pasar el dato a la hoja.

.

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

.

Avísame cualquier duda

.

¡Gracias! Perfecto...

.

'Recuerda valorar la respuesta
Respuesta
1

Intenta con esta macro y comentas

Private Sub TextBox1_AfterUpdate()
With TextBox1
palabra = .Text
DERECHA = Left(palabra, 3)
IZQUIERDA = Right(palabra, 3)
If DERECHA = "<<*" Or IZQUIERDA = "*>>" Then
    GoTo salida:
Else
    MsgBox ("Debes ingresar <<* al principio y *>> al final"), vbInformation, "AVISO"
    .Text = Empty
    .SetFocus
End If
End With
salida:
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas