Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: maxtextla en 20 Julio 2007, 00:34 am



Título: reinstringir numero de datos en texbox
Publicado por: maxtextla en 20 Julio 2007, 00:34 am
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  :-[


Título: Re: reinstringir numero de datos en texbox
Publicado por: Sancho.Mazorka en 20 Julio 2007, 22:38 pm
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    :¬¬


Título: Re: reinstringir numero de datos en texbox
Publicado por: ActiveSheet en 20 Julio 2007, 22:55 pm
Código
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2.    If KeyAscii = Asc("6") Or KeyAscii > Asc("6") Then KeyAscii = 0
  3. End Sub
  4.  


Título: Re: reinstringir numero de datos en texbox
Publicado por: Mad Antrax en 20 Julio 2007, 23:22 pm
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()


Título: Re: reinstringir numero de datos en texbox
Publicado por: ActiveSheet en 20 Julio 2007, 23:40 pm
jajaja si es lo que vi ups  :-X


Título: Re: reinstringir numero de datos en texbox
Publicado por: ~~ en 21 Julio 2007, 14:41 pm
No hace falta complicarse tanto. Añade este code y ya:

Código
  1. Private Sub Text1_Change()
  2. If Val(Text1.Text) > 6 Then Text1.Text = ""
  3. End Sub
  4.  

Si pones numeros del 0 al 6 te deja. Si pones un 7 por ejemplo borra el contenido  :P


Título: Re: reinstringir numero de datos en texbox
Publicado por: maxtextla en 21 Julio 2007, 17:32 pm
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..  :-[


Título: Re: reinstringir numero de datos en texbox
Publicado por: Sancho.Mazorka en 21 Julio 2007, 20:32 pm
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
  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2. If Len(Text1.Text) = 1 Then
  3.    If Text1.Text >= 6 Then
  4.        If KeyAscii <> 8 Then
  5.            KeyAscii = 0
  6.        Else
  7.            GoTo FIN
  8.        End If
  9.    End If
  10. End If
  11. FIN:
  12. End Sub

Sancho.Mazorka    :¬¬


Título: Re: reinstringir numero de datos en texbox
Publicado por: rob1104 en 21 Julio 2007, 21:38 pm
Creo que esto funciona tal como lo pide:
Código:
'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


Título: reinstringir numero de datos en texbox
Publicado por: maxtextla en 21 Julio 2007, 22:02 pm
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.


Título: Re: reinstringir numero de datos en texbox
Publicado por: Sancho.Mazorka en 21 Julio 2007, 22:14 pm
De nada maxtextla, acuerdate de usar las etiquetas de code, asi podemos entender mejor el code  ;)

Sancho.Mazorka    :¬¬


Título: Re: reinstringir numero de datos en texbox
Publicado por: cassiani en 23 Julio 2007, 20:48 pm
 Hola maxtextla, tenia listo algo desde hace rato, pero cuando entre nuevamente en el foro, me habías cambiado la seña y no tengo libre acceso a la red. Espero aun poder ayudarte como ya lo han hecho conmigo en otras ocasiones.

 Este es, prácticamente el código que tenia de principio, pero modificado para que haga todo lo que pedisteis.

 Te aconsejo usar el “option explicit”, “comentarios en los códigos” y “trabajar con tabulaciones” de esta manera es mas fácil solucionar problemas.

 Suponiendo que tu textbox se llama text1, este seria el algoritmo:



Código:
Option Explicit

Private Sub Form_Load()
    'Configuramos el TextBox para que acepte máximo 2 caracteres.
    Text1.MaxLength = 2
    'Tambien puedes hacerlo desde las propiedades del TextBox directamente.
End Sub

'Con este procedimiento evitamos el copy & paste
Private Sub Text1_Change()
'Control de errores por si se pega otra cosa que no sean números
On Error Resume Next
    'Lo no permitido ¡pa' fuera!
    If Val(Text1.Text) >= 60 Or Text1.Text < 0 Then Text1.Text = ""
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
'Este procedimiento permite que se incerten, solo las teclas deseadas usando la Ascii.
Dim Tecla As String
    Tecla = Chr(KeyAscii)
    If KeyAscii <> 8 Then 'Verifica si se presionó las teclas de direcciones.
        Select Case Tecla
            'Controlamos, cuando se permitirá insertar números del 6 al 9 y cuando no.
            Case "6" To "9": If Text1.Text = "" Then KeyAscii = 0
            'Metemos a números del 0 al 5 en paquete de permitidos permanentes.
            Case "0" To "5"
            'Si Tecla obtiene un valor diferente a números del 0 al 9 ó cualquier otro caracter,  lo borra.
            Case Else: KeyAscii = 0
        End Select
    End If
End Sub

 Espero haber sido de ayuda, a pesar de la tardanza.  :P


Título: Re: reinstringir numero de datos en texbox
Publicado por: maxtextla en 24 Julio 2007, 23:42 pm
Citar
cuando entre nuevamente en el foro, me habías cambiado la seña y no tengo libre acceso a la red

eso no te lo entendi  :-[ pero bueno...

gracias por el codigo que me enviaste, de igual forma me sirvio, aunke no lo krean estoy aprendiendo VB desde aki, y no sabia como utilizar el maxlength  :-[ pero gracias a tu comentario ya lo se manejar ahora  :)

gracias pues la intecnion siempre es la que kuenta

nos seguimos leyendo