Página 1 de 1
Visual basic 6.0 (Texto numerico)
Publicado: Mié Sep 30, 2009 4:28 pm
por jcguerrar
Hola a todos, soy novato en esto de la programacion asi que me saltan varias dudas cada vez mas. El problema es q tengo una caja de texto en la cual quiero solo permitir que se pueda escribir solo numeros (no texto), pero si la coma (decimal) pero a la vez que se pueda escribir una sola coma, pq en caso de error de tipeo se incluya otra coma, el programa se cae. Cualquier tipo de ayuda se agradece.
Re: Visual basic 6.0 (Texto numerico)
Publicado: Mié Sep 30, 2009 7:32 pm
por ReneM
Hola, puedes comenzar con este código:
Código: Seleccionar todo
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0 ' Para que no "pite"
SendKeys "{tab}" ' Envía una pulsación TAB
ElseIf KeyAscii <> 8 Then ' El 8 es la tecla de borrar (backspace)
' Si después de añadirle la tecla actual no es un número...
'If Not IsNumeric("0" & Text1.Text & Chr(KeyAscii)) Then
' Corrección informada por: José Treviño (21/Sep/2001)
If Not IsNumeric(Chr(KeyAscii)) Then
' ... se desecha esa tecla y se avisa de que no es correcta
Beep
KeyAscii = 0
End If
End If
End Sub
Fuente: página de Guillermo "el Guille" Som:
http://www.elguille.info/
Re: Visual basic 6.0 (Texto numerico)
Publicado: Jue Oct 01, 2009 11:00 am
por jcguerrar
el codigo q me enviaste esta correcto, pero lo malo es q no puedo escribir ninguna coma decimal. Los que necesito es colocar una coma decimal, pero solamente una coma, pq en caso de colocar otra el pregrama se cae. gracias
Re: Visual basic 6.0 (Texto numerico)
Publicado: Mié Nov 18, 2009 3:49 pm
por cesar_mvp82
Hola jcguerrar, te adjunto un ejemplo en visual basic 6.0. Para que funcione bien tienes que cambiar el la configuración regional el separador decimal a punto (.); si lo quieres ocupar con coma (,) solo tienes que cambiar en el código:
If KeyAscii <> 8 And KeyAscii <> 46 And (KeyAscii < 48 Or KeyAscii > 57) Then
If KeyAscii <> 8 And KeyAscii <> 44 And (KeyAscii < 48 Or KeyAscii > 57) Then
44 es el código ASCII de coma (,); fíjate la diferencia entre las instrucciones Val() y Cdbl. Espero haberte ayudado, Saludos