No permitir caracteres entremedio

Tengo este código que hace lo siguiente

'Inserta SOLO ciertos caracteres
Function Verificar_Tecla(Tecla_Presionada)
Dim Teclas As String
    'Permite SOLO números y las teclas, - E V y J
    Teclas = "VEJ-1234567890" & Chr(vbKeyBack) ‘Caracteres y numeros permitidos
    If InStr(1, Teclas, Chr(Tecla_Presionada)) Then ‘Verifica en la Funcion las teclas presionadas
Verificar_Tecla = Tecla_Presionada
Select Case Len(txtcli3)
Case 1, 10
txtcli3 = txtcli3 & "-"  ‘Un guion despues del 1º carácter y del 10º
End Select
    Else
        ' Si no es ninguna de las indicadas manda un mensage o retorna 0
       MsgBox "Tecla no permitida" ‘Si se equivoca de caracter
    End If
End Function
'Hace paerte de la Funcion arriba. En este caso solo acepta 12 caracteres
Private Sub txtcli3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = Verificar_Tecla(KeyAscii) ‘Verifica si la funcion permite o no la tecla presionada
If Len(Me.txtcli3) = 12 Then KeyAscii = 0 '<-- El KeyAscii = 0 es para borrar la tecla presionada equivocadamente
If Len(txtcli3) = 12 Then MsgBox "LLego al maximo de 12 caracteres": Exit Sub ‘solo permite 12 caracteres incluiendo letras y numeros
End Sub
En el TextBox debe verse así  Ejemplo: V-12345678-1

Mi problema es que permite caracteres entremedio. Y si inserto el carácter indicado pero en minúsculas no acepta. Quiero hacer referencia aquí que el carácter TIENE que ser insertado en mayúsculas

Carácter SIEMPRE MAYÚSCULA este o no la tecla Bloq activada

No permita NINGÚN carácter entre los números que no sea el guion como se aprecia arriba en el ejemplo

1 Respuesta

Respuesta
1

Crea 3 textbox, en uno solamente acepta las letras V, E y J

En otro sólo acepta número .

Y por último en el tercer textbox acepta números.

Al final concatenas los 3 textbox con guiones intermedios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas