Visual Basic - Crear una Funcion o modulo de un evento keypress de textbox

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 17
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Laura (12 intervenciones) el 19/11/2018 21:47:09
hola a ver si me pueden ayudar con esto, tengo la siguiente rutina que me funciona muy bien en los eventos keypress de mis textbox en el programa, lo que hace es solo aceptar números y un solo punto con el fin de evitar errores en el programa , lo que quiero es saber si puedo hacer de ella una función publica o en un modulo por que esta rutina se me repite en el programa mas de 20 veces en cada textbox que tengo y lo que quiero es optimizar el código del programa gracias por la ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 
If (KeyAscii >= 48 And KeyAscii <= 57) Then
        KeyAscii = KeyAscii
    ElseIf (KeyAscii = 46) Then
        KeyAscii = KeyAscii
    Else
        KeyAscii = 0
    End If
 
 
 If Chr(KeyAscii) = "." Then
   If InStr(Textbox1, ".") > 0 Or Len(Textbox1) = 0 Then
   KeyAscii = 0
   End If
End If
 
 
 
End Sub
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 Andres Leonardo
Val: 3.863
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Andres Leonardo (1604 intervenciones) el 19/11/2018 23:24:46
Hola

Dos temas .... de lo que dijistes


lo que hace es solo aceptar números y un solo punto con el fin de evitar errores en el programa
Puedes utilizar MASKEDITED Textbox que son textbox con mascara de entrada para prevenir esto ... pero igual puedes usar los textbox ...esto me lleva al segundoi


, lo que quiero es saber si puedo hacer de ella una función publica o en un modulo por que esta rutina se me repite en el programa mas de 20 veces en cada textbox que tengo y lo que quiero es optimizar el código del programa gracias por la ayuda

claro que si ... creas la funcion publica, donde puedes enviar el texto para que sea validado ... o puedes enviar el control como parametro para que tu funcion validad

qeu version estas usando de BV

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
sin imagen de perfil
Val: 17
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Lauro rojas (12 intervenciones) el 19/11/2018 23:43:56
Como lo haria ? Estoy con Office 2007
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
sin imagen de perfil
Val: 17
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Laura (12 intervenciones) el 20/11/2018 00:03:46
quisera hacerlo por medio de la función publica y como haría el llamado en el evento keypress para que mi función valide el textbox que en ese momento deseo validar
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 Andres Leonardo
Val: 3.863
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Andres Leonardo (1604 intervenciones) el 20/11/2018 15:01:22
OK esto seria
Mira que con una sola funcion tengo todos los textboxes validados

espero te ayude
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = ValidarCaracter(KeyAscii, TextBox2.Text)
End Sub
Private Sub Textbox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = ValidarCaracter(KeyAscii, TextBox3.Text)
End Sub
Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        KeyAscii = ValidarCaracter(KeyAscii, TextBox1.Text)
End Sub
 
 
Public Function ValidarCaracter(ByVal TeclaPulsada As Integer, txt As String) As Integer
    If (TeclaPulsada >= 48 And TeclaPulsada <= 57) Or (TeclaPulsada = 46) Then
        ValidarCaracter = TeclaPulsada
    Else
        ValidarCaracter = 0
    End If
    If Chr(TeclaPulsada) = "." Then
        If InStr(txt, ".") > 0 Or Len(txt) = 0 Then ValidarCaracter = 0
    End If
 
End Function
ValidaTxt
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
sin imagen de perfil
Val: 17
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear una Funcion o modulo de un evento keypress de textbox

Publicado por Laura (12 intervenciones) el 20/11/2018 17:36:45
Me funciono a la perfección exactamente lo que quería hacer , estaba muy lejos de lograr hacer la función gracias por el aporte ya se como plantear las funciones para otros textbox numéricos también
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