Visual Basic para Aplicaciones - Validar textbox vacios con numeros y decimales con ascii

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 390
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por fjpg (124 intervenciones) el 14/08/2019 18:16:51
Hola buenas. Tengo una validacion en unos textbox para que solo coja numeros. Pero no me deja insertar la coma para colocar dos decimales

Por ejemplo 15,48

Con este codigo (creo que lo consegui en un post de este foro) impido que se inserten letras en el textbox:

1
2
3
If KeyAscii < 48 Or KeyAscii > 57  Then
        KeyAscii = 0
End If

Si me ha parecido leer bien la "," para poder insertar decimales es el 44
Seria algo asi:
1
KeyAscii =44

Probe este codigo pero no me funicona:
1
2
3
If KeyAscii < 48 Or KeyAscii > 57  Or KeyAscii = 44 Then
        KeyAscii = 0
End If

Supongo que para vosotros es una menudez, espero que podais ayudarme.
GRACIAS CRACKS"!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Hector Madriz
Val: 188
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por Hector Madriz (29 intervenciones) el 14/08/2019 20:01:08
Buen día, prueba esto:

1
If Not ((KeyAscii>=48 And KeyAscii<=57) Or KeyAscii=44) Then KeyAscii=0
..en el evento KeyPress del TextBox1

o

1
If Not IsNumeric(TextBox1) Then TextBox1=""
..en el evento AfterUpdate del TextBox1

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alfredo
Val: 123
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por Alfredo (38 intervenciones) el 14/08/2019 20:05:19
Hola Fjpg

Prueba esto

1
If Not IsNumeric(Chr(KeyAscii)) Or Chr(KeyAscii) <> Application.DecimalSeparator Then KeyAscii = 0

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector Madriz
Val: 188
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por Hector Madriz (29 intervenciones) el 14/08/2019 20:43:42
Buen día, tengan presente los principios de lógica matemática:

Operador lógico OR
V o V = V
V o F = V
F o V = V
F o F = F


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de alfredo lara
Val: 123
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por alfredo lara (38 intervenciones) el 14/08/2019 22:10:28
Un olvido

Se me olvidaba comentarte fjpg, seria bueno poner una validación para que no se pulse 2 veces el separador decimal

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 486
Plata
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por MIGUEL (107 intervenciones) el 14/08/2019 22:23:10
Esta es la forma en que yo controlo la coma o el punto segun lo requiera, asi solo es posible poner una coma o un punto si no lo necesitas solo borra lo que dice quitar y ya esta.

En el evento KeyPress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
If Len(Me.txtCantidad) = 0 Then ' quitar
    If (KeyAscii >= 48 And KeyAscii <= 57) Then
        KeyAscii = KeyAscii
    ElseIf (KeyAscii = 44) Then ' el punto es 46
        KeyAscii = KeyAscii
    Else
        KeyAscii = 0
    End If
Else 'quitar
    If (KeyAscii >= 48 And KeyAscii <= 57) Then 'quitar
        KeyAscii = KeyAscii 'quitar
    ElseIf (KeyAscii = 44) Then 'quitar
        If InStr(1, Me.txtCantidad, ",") > 0 Then 'quitar, hay que cambiar la coma por el punto o viceversa
            KeyAscii = 0 'quitar
        Else 'quitar
            KeyAscii = KeyAscii 'quitar
        End If 'quitar
    Else 'quitar
        KeyAscii = 0 'quitar
    End If 'quitar
End If 'quitar

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector Madriz
Val: 188
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por Hector Madriz (29 intervenciones) el 15/08/2019 02:58:58
Buen día, también puedes probar esto:

1
2
3
4
5
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not ((KeyAscii >= 48 And KeyAscii <= 57) Or _
        (KeyAscii = Asc(Application.DecimalSeparator) And (InStr(1, TextBox1, Application.DecimalSeparator) = 0) Or _
        ((KeyAscii = 43 Or KeyAscii = 45) And Len(TextBox1) = 0))) Then KeyAscii = 0
End Sub

*Solo caracteres que conforman un numero
*Permite colocar el signo { + - }
*Determina el actual separador decimal del sistema { , . }
*Solo permite un separador decimal

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 390
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Validar textbox vacios con numeros y decimales con ascii

Publicado por fjpg (124 intervenciones) el 15/08/2019 13:02:11
Gracias por todas las respuestas.
Probe todas pero he dejado la del compañero MIGUEL.
Pero, se agradecen todas las repsuestas desinteresadas que dais, GRACIAS!!!

P.D. Creo que, sin querer, vote negativo a la repsuesta de miguel al querer darle al positivo.Si se puede cambiar, lo agradeceria.
PERDON
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar