Repeticiones

¿Hola qué tal? Tengo el siguiente código, el problema no es el código ya que anda bien sino que lo tengo que repetir muchas veces
Private Sub txt155_LOSTFOCUS()
If txt155.Text = "" Then txt155.Text = "0"
On Error GoTo error
If txt155.Text < 0 Or txt155.Text > 40 Then
GoTo error
End If
Exit Sub
error:
MsgBox mensaje, vbCritical, "Atención!!!"
txt155.SetFocus
txt155.SelStart = 0
txt155.SelLength = Len(Trim(txt155.Text))
End Sub
Esto lo tengo que repetir para unos cuantos textbox, que lo único que yo variaría es el nombre del textbox y que el puntero del mouse quede en el que tiro error al darle tab, osea al perder el foco.
¿Hay alguna forma que no sea repetir el código tantas veces como sea necesario?
Por ej los nombres de los textbox son txt155, ¿txt156 no hay nada que pueda hacer onda un ciclo que me varia el nombre de los textbox ya que estos finalizan con un numero?
Desde ya muchas gracias
JOrge.

1 respuesta

Respuesta
1
La solución a tu problema pasa por crear objetos pero en tiempo de ejecución y no de diseño, de esta forma, puedes utilizarlos de variables en tu programación..
Mira lo siguiente... voy a declarar dos componentes textbox que utilizaré posteriormente en la programación. (Esto debes hacer tú en el tuyo)
Public nuevotext as Textbox
Public antiguotext as Textbox
El primero, representa el textbox donde se irá el foco si es que se ingresó bien el dato..
el segundo, representa el lugar donde se irá el foco si es que se ingreso mal el dato..
Private sub Text1_Lostfocus()
Set nuevotext=text2
Set antiguotext=text1
validafoco
end sub
Si te fijas arriba, asigne a los textbox que cree recién las posiciones donde se debieran ir.. pero para ello utilizo el procedimiento validafoco que te presento a continuación..
Sub validafoco()
If antiguotext.Text <> "" Then
If Val(antiguotext.Text) < 0 Or Val(antiguotext.Text) > 40 Then
MsgBox "Intente nuevamente", vbCritical, "Atención!!!"
antiguotext.SetFocus
antiguotext.SelStart = 0
antiguotext.SelLength = Len(Trim(antiguotext.Text))
Else
nuevotext.SetFocus
End If
Else
antiguotext.SetFocus
End If
End Sub
Lo acomodé lo mejor que pude... espero que lo comprendas y que te sirva...
Muchos saludos desde Chile..
Fvomaster
end sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas