Tengo este código que he ido bajando y acomodando en uno solo para que me funcione en el evento KeyPress
Código:
Private Sub txt_RIF_CI_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii))) 'para MAYUSCULAS aun tengas tecla Bloq para minusculas
Const Number$ = "0123456789VEJ" ' solamente permite estos caracteres
If KeyAscii <> 8 Then
If InStr(Number$, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Exit Sub
End If
MsgBox "CARACTER NO PERMITIDO"
End If
'Si no es ninguna de las 3 letras indicadas manda un mensaje o retorna 0
MsgBox "Solo permitido números Y teclas V E J", vbInformation, Title:="CARACTER NULO"
'Para Guion
Select Case Len(txt_RIF_CI)
Case 4, 12
txt_RIF_CI.Text = txt_RIF_CI.Text & "-"
End Select
If Len(txt_RIF_CI) = 14 Then KeyAscii = 0: MsgBox "LLego al MAX de 14 caracteres": Exit Sub
End Sub
Como se puede ver, pretendo que solo deje ingresar números y las letras SOLO al inicio, E V y J , es decir, de entremedio, entre el 1 y el ultimo 9, nada de letras o otro carácter a no ser números, (repito, el guion auto entra solo con el Select Case Len(txt_RIF_CI))
Las 3 letras solo permitirlas al inicio y no puede permitir letras desde el 1 hasta el 9
El guion entra automáticamente, lleno el TextBox así, j este j se transforma en MAYUSCULA, aun tenga la tecla Bloq Mayus DESactivada o pise Shift, el guión luego de entrada la letra, auto se coloca, sigo, 12345678 auto entra el guion, sigo con el 9 para completar y verse el TextBox
S iel carácter no es el indicado en el código, manda advertencia y lo borra
Cita: MsgBox "CARACTER NO PERMITIDO"
Al llegar a 14 en total, manda el mensaje de advertencia,
Cita: Llegó al MAX de 14 caracteres
Los mensajes también están fuera de posición
Me he matado en hacer cambios y cambios y nada de nada me da, pues la falta de experiencia, hace que recurra a ustedes, al cual solo me queda agradecerles.
Estoy en busca de un código CORTO y no tan complicado pero, que satisfaga lo que pretendo.
Lo del guion se que funciona pero como esta, algo pasa que no me da, probándolo solo si funciona.
¿Alguna idea?
Gracias