Autor
|
Tema: reinstringir numero de datos en texbox (Leído 4,107 veces)
|
maxtextla
Desconectado
Mensajes: 182
Sidetrón
|
mi duda es la siguiente: tengo un texbox y quiero reinstringir el numero de caracteres atravez de ciertas condiciones, es decir, si en un texbox introdusco un numero mayor o igual a 6, que ya no se introduzca otro numero junto (60,61... etc), que se kede solo en esta unidad.. (6) gracias y espero haber podido explicar mi problema
|
|
|
En línea
|
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!
|
|
|
|
ActiveSheet
Desconectado
Mensajes: 389
Feeling Jazz
|
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = Asc("6") Or KeyAscii > Asc("6") Then KeyAscii = 0 End Sub
|
|
|
En línea
|
|
|
|
Mad Antrax
|
Ese código no sirve ActiveSheet Si un usuario hace un copy & paste de un texto con el código tuyo se lo come con patatas y no lo filtra. Programa eso con un bucle en el evento CHANGE o usa la función IsNumeric()
|
|
|
En línea
|
No hago hacks/cheats para juegos Online. Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
|
|
|
|
~~
|
No hace falta complicarse tanto. Añade este code y ya: Private Sub Text1_Change() If Val(Text1.Text) > 6 Then Text1.Text = "" End Sub
Si pones numeros del 0 al 6 te deja. Si pones un 7 por ejemplo borra el contenido
|
|
|
En línea
|
|
|
|
maxtextla
Desconectado
Mensajes: 182
Sidetrón
|
gracias por las respuestas, miren, estoy haciendo un programa en el que pueda introducir minutos, es decir que el numero de decimales maximo sea de 59, si escribo solo 6, 7,8,9 se keden en estos numero y no se les pueda anexar otro para no exceder el numero de minutos. espero que ahora si me hayan entendido, gracias..
|
|
|
En línea
|
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!
|
|
|
Sancho.Mazorka
Desconectado
Mensajes: 480
Gamer & Programador
|
Creo que esto si es lo que buscabas! Para que funcione bien coloca la propiedad MaxLength del Text1 en 2 Si colocas una letra sale un error, asi que arregla eso, es facil!Private Sub Text1_KeyPress(KeyAscii As Integer) If Len(Text1.Text) = 1 Then If Text1.Text >= 6 Then If KeyAscii <> 8 Then KeyAscii = 0 Else GoTo FIN End If End If End If FIN: End Sub
|
|
« Última modificación: 21 Julio 2007, 22:15 pm por Sancho.Mazorka »
|
En línea
|
|
|
|
rob1104
Desconectado
Mensajes: 340
Usuario común
|
Creo que esto funciona tal como lo pide: 'Para que no pueda pegar valores mayores a 60 Private Sub Text1_Change() If Val(Text1.Text) >= 60 Then Text1.Text = "" End If End Sub
'Para que no permita escribir digitos de dos cifras que comienzen con un numero mayor o igual a 6 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <> 8 Then If Val(Text1.Text) >= 6 Then KeyAscii = 0 End If End If End Sub Claro con la propiedad MaxLength del text1 a 2
|
|
« Última modificación: 21 Julio 2007, 21:41 pm por robbie110487 »
|
En línea
|
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
|
|
|
maxtextla
Desconectado
Mensajes: 182
Sidetrón
|
primero que nada gracias Sancho.Mazorka, tu ejemplo me sirvio para poder terminarlo con exito, el unico problema que tenia tu codigo es que solo me reinstringia numeros al inicio despues del 6, pero por ejemplo, si empezaba a escribir con el numero 5 se pasaba de largo (565,489,3548), ya no era logico los minutos, pero ya lo pude resolver, este es el codigo FINAL, de antemano muchas gracias a todos los que escribieron.
CODIGO:
Private Sub mfin_KeyPress(KeyAscii As Integer) If Len(mfin.Text) = 1 Then If mfin.Text >= 6 Then If KeyAscii <> 8 Then KeyAscii = 0 Else GoTo FIN End If End If End If
If Len(mfin.Text) = 2 Then If mfin.Text > 9 Then If KeyAscii <> 8 Then KeyAscii = 0 Else GoTo FIN End If End If End If
FIN: End Sub
posdata: este ejercicio lo escribi antes de tu ultimo mensaje, solo que no lo habia publikado y en el anterior me diste la respuesta correcta... gracias.
|
|
|
En línea
|
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!
|
|
|
|
|