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-1Mi 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 de Dante Amor
1