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