Cita:
Iniciado por KingColt
Que tal como haria lo siguiente que mi caja de texto solo acepte una letra, un guion y el resto de la cadena solo numeros, solo tengo esto que me permite ingresar numeros, quiero que el formato sea de esta manera C-152030
Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
'Solo acepta numeros en la caja de texto
If (Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9") And _
Chr(KeyAscii) <> vbBack Then
KeyAscii = 0
End If
End Sub
Bueno, como indicaba en el post #3, lo ideal sería utilizar un control MaskEdBox, pero si tiene que ser en una caja de texto y validando tecla a tecla, puedes poner este
Código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub ' tecla retroceso
If Chr(KeyAscii) = vbCr Or Chr(KeyAscii) = vbTab Then
' tecla ENTER o TAB, antes de pasar el foco al siguiente control
' verificamos el número de caracteres
If Len(Text1) <> 8 Then ' (letra + guión + 6 caracteres)
KeyAscii = 0
Else
SendKeys "{Tab}"
End If
Exit Sub
End If
If Len(Text1) = 0 Then
' 1er dígito, lo convertimos a mayúsculas
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii > 64 And KeyAscii < 91 Then
' carácter correcto, le añadimos el guión y nos posicionamos al final
Text1.Text = Chr(KeyAscii) & "-"
Text1.SelStart = 3
End If
' eliminamos la pulsación de tecla
KeyAscii = 0
' si se ha eliminado el guión (con la tecla de retroceso)
' convertimos el carácter digitado en un guión
ElseIf Len(Text1) = 1 Then KeyAscii = 45
Else
' sólo números
If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
End If
End Sub