Jump to content

permitir solo ciertos caracteres en textbox


Recommended Posts

Buen dia expertos recurro a ustedes con esta consulta que espero no les quite mucho de su valioso tiempo y en espera me puedan ayudar, y es que requiero que un textbox acepte solo caracteres que yo quiera como en este caso requiero el textbox solo acepte letras mayusculas y minusculas, y los caracteres exceptuados son el guion bajo, el espacio y los dos puntos ":" y tengo el siguiente codigo pero no logro adecuarlo

Private Sub Textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' osea Esto es para que el Textbox1 solo acepte números
'    If KeyAscii < 48 Or KeyAscii > 57 Then
'        KeyAscii = 0
'    End If

' del 32 al 126 son caracteres imprimibles

  ' Esto es para que el Textbox1 solo acepte letras
' las letras son del 65 al 90 en mayusculas
' las letras son del 97 al 122 en minusculas

  ' osea el 32 es el espacio, el guion bajo es el 95

If Not (KeyAscii >= 65 And KeyAscii <= 90 Or KeyAscii >= 97 And KeyAscii <= 122 Or KeyAscii = 32 Or KeyAscii = 95) Then
KeyAscii = 0
End If


End Sub

pero no se porque no me funciona, si alguien me puede ayudar se lo agradeceria muchisimo

Link to comment
Share on other sites

Prueba y comenta 

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

  Select Case KeyAscii
    Case 32
    Case 58
    Case 65 To 90
    Case 95
    Case 97 To 122: Case Else: KeyAscii = 0
  End Select

End Sub

 

Link to comment
Share on other sites

Y con tu código prueba y comenta

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    
    If Not (KeyAscii >= 65 And KeyAscii <= 90 Or KeyAscii >= 97 And KeyAscii <= 122 _
                        Or KeyAscii = 32 Or KeyAscii = 95 Or KeyAscii = 58) Then
                        KeyAscii = 0
    End If
End Sub

 

Link to comment
Share on other sites

  • 4 weeks later...

A mi me gusta mucho que muestro a continuación porque yo le digo en el evento KeyPress cuales son los que deseo que se digiten y me evito muchos inconvenientes.

    If InStr("0123456789" & Chr(8), Chr(KeyAscii)) = 0 Then KeyAscii = 0

Luego puedes incluir otros caracteres o símbolos que desees incluir y listo

 

Link to comment
Share on other sites

  • Crear macros Excel

  • Posts

    • La parte de intercalar no la había captado Adjunto de nuevo mi método Espero ahora si, quede listo   Saludos! Mover filas filtradas otra hoja_GP.xlsm
    • Buenas noches nuevamente a los Foristas. A sugerencia de JSD  de los problemas que le planteaba sobre el formulario, abro un nuevo tema. Ofrezco disculpas porque realmente es así como debe ser. El tema es el siguiente: Tengo en este formulario otros problemas que quizás puedan ayudarme: realmente he tratado de ver dónde está el error, pero mis conocimientos no alcanzan y ustedes son los MAESTROS. 1.- En el FrmPersonal trabajo lo que es el listado de Personal con todos los datos y las Nóminas de Salario. En la parte de las nóminas (LstNomina) ya lo configuré de tal manera que con el evento DobleClick pueda traer cualquier trabajador y poder modificar algún dato que por error se haya introducido. Este trabaja Bien, pero en el LstPersonal, estoy tratando de hacer lo mismo y no me está queriendo tomar los datos para su modificación. No me da error, pero no lo hace y he buscado, pero no encuentro el posible problema. 2.- En este mismo Formulario (FrmPersonal), no acabo de poner bien el código VBA para los OptionButton de Sexo. 3.- En este Proyecto también tengo o quiero en el FrmBuscarEntradas poder modificarlo y que a través de un ComboBox o de Botones de Opción poder hacer la búsqueda no sólo de las Entradas, sino también de las Salidas y la Existencia. Esto para evitarme tener que hacer uno para cada uno y reducir los Formularios. ¿Podrías ayudarme con estos temas? Un abrazo a todos. Espero puedas ayudarme y excelente semana para todos. Un abrazo caluroso y cordial. Pino.   Mi Negocio Foro.xlsm
    • Buenas Noches a todos los Foristas. Gracias JSD por su aporte. Revisaré dónde estaba el problema para evitar el mismo error en lo adelante y aprender. Gracias a los demás miembros del Foro también. Tema cerrado.
    • Hola, Gerson. Pues es que solo se mueven todas las salidas de golpe tanto si filtras a mano como si no y todos las referencias de producto a la vez de salidas. No es el ejemplo 2.. no sé... pensaba que la pregunta era clara y tendría fácil solución. El código de mi ejemplo es super sencillo y lo he explicado paso a paso en la macro. En el ejemplo 1 funciona y en el ejemplo 2 es exactamente igual solo que los registros están filtrados.  Comienzo siempre con una salida y luego se van alternando (una entrada, una salida... hay condiciones) hasta que ya no quedan datos en las hojas. Primero para Referencia 1 (filtrada). La idea es al terminar quitar el filtro y hacer lo mismo para referencia 2 (como en el ejemplo 1 que funciona). Gracias.  
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy