reinstringir numero de datos en texbox

Iniciado por maxtextla, 20 Julio 2007, 00:34 AM

0 Miembros y 2 Visitantes están viendo este tema.

maxtextla

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  :-[
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!

Sancho.Mazorka

No entendi bien tu pregunta maxtextla, podrias ser mas claro, pero supongo que vos queres que el textbox no acepte numeros mayor a 60, que el limite maximo sea 59, eso es lo que queres ??? Decime si es eso


Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



ActiveSheet

Código (vb) [Seleccionar]
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = Asc("6") Or KeyAscii > Asc("6") Then KeyAscii = 0
End Sub

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()
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

ActiveSheet


~~

No hace falta complicarse tanto. Añade este code y ya:

Código (vb) [Seleccionar]
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  :P

maxtextla

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..  :-[
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!

Sancho.Mazorka

#7
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!

Código (vb) [Seleccionar]
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



Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



rob1104

#8
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
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

maxtextla

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.
Cuanto Mas Aprendo Mas Cuenta Me Doy de Lo Ignorante Que Soy!!