· En el evento KeyPress de un Textbox llamado Text1.
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii <48 Or KeyAscii > 58 Then
KeyAscii = 0
End If
End Sub
Pues hasta aquí todo bien. ¿Y si quiero poner punto decimal? :S
En El Guille me encontre con esta otra solución:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr("0123456789.", Chr(KeyAscii)) = 0 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
Ya estaba resuelto el problema del punto pero ahora la cuestión era: ¿cómo restringir el Textbox para que solo aceptara un punto decimal y poder borrarlo?
Manos a la obra:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim x As Integer, h As Integer
Dim cadena As String
Dim band As Boolean
h = Len(Text1.Text) ' Longitud de cadena
cadena = Text1.Text ' Almacena lo escrito en el textbox
For p = 1 To h
If Mid(cadena, p, 1) = "." Then ' Si hay un punto en la cadena...
band = True ' Se activa la bandera
Exit For
Else
band= False
End If
Next p
If band = True Then ' Si la bandera esta activada no acepta el punto
If InStr("0123456789", Chr(KeyAscii)) = 0 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End If
If band = False Then ' Si la bandera no esta activada acepta el punto
If InStr("0123456789.", Chr(KeyAscii)) = 0 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End If
End Sub
Espero que alguna vez le sirva para alguna aplicación que les surga por ahí, hasta el momento yo lo he utilizado y me va muy bien.
"Felices Líneas" XD (me refiero a las de código)
9 comentarios:
Gracias compañero me ha servido de mucho este pedazo de codigo.
felices lineas!!
Muchisimas gracias es justo lo que necesito para una entrada de datos
muchas gracias me sirvio mucho el codigo
Muchas gracias, por compartir este codigo de ejemplo, me ha servido bastante, andaba buscando algo como esto, te felicito mil gracias
Muchas garcias, la verdad tenia como 2 semanas tratando de resolver este problemita. Eres bueno en esto. Saludos.
gracias q buen codigo
muchisimas gracias cuate me sirvio demaciado
no se olviden que en el :
For p = 1 to h
en el " p " tiene que ser la declaracion x as integer.
¿quien es el "genio" que pone texto gris sobre gris oscuro?
Publicar un comentario