Comas y puntos

¿Cómo hago para que al pulsar enter u otro evento en una caja de texto de VB después de escribir un número con coma, el programa me informe que el usuario escribió una coma o bien la sustituya por un punto, ahhh?
Respuesta
1
Creo que es mejor que en lugar de esperar a que se salga del control, verifiques lo que el usuario introduce tecla por tecla. Esto lo puedes hacer con el evento KeyPress. Por ejemplo, si el control se llamara Entrada, podrías poner el siguiente código:
Private Sub Entrada_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = "," Then
KeyAscii = Asc(".")
End If
End Sub
Este procedimiento cambia las comas por puntos. Incluso puedes forzar a que un control sólo admita unas teclas determinadas. Por ejemplo, el siguiente código:
Private Sub Entrada_KeyPress(KeyAscii As Integer)
Dim Tecla, Valida As String
Dim Flag As Boolean
Dim i As Integer
Valida = "0123456789"
Tecla = Chr(KeyAscii)
Flag = False
For i = 1 To Len(Valida)
If Mid$(Valida, i, 1) = Tecla Then
Flag = True
End If
Next i
If Not Flag Then KeyAscii = 0
End Sub
Permitirá únicamente la entrada en el control de los dígitos del 0 al 9.
Creo que con esto ya tienes para programar una buena rutina de entrada de datos formateados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas