Problemas con la intentar en textbox des pues de presionar tab

"para Dante Amor"

Hola. Gracias a dante estuve aprendiendo varias cosas.

Pude hacer lo que quería que puede parecer medio rebuscado pero funciona, solo me queda poder posicionar al principio del cuadro de texto el cursos.

Explico

Tengo 3 formularios

formulario1 - userform_TP_a y formulario3

Del uno paso al TP y de este al 3 con un botón

Del TP puedo volver al uno con otro botón

Para validar dos textbox (1 y 2) utilizo 2 rutinas puestas en un modulo y para calcular un textbox3 en base a los 2 anteriores utilizo otra rutina en el mismo modulo. Todo esto lo hice porque si válido con el evento exit de los cuadros de textos no podía resolver que no validara al dar al botón volver.

El código me quedo así:

Textbox1 es talla:

Private Sub TextBox1_AfterUpdate()
Call val_peso2
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Or KeyCode = 40 Then
KeyCode = 0
End If

End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii = 9 Or KeyAscii = 11 Then
Call val_talla
Else
End If

End Sub

Textbox2 es el peso

Private Sub TextBox2_AfterUpdate()
Call val_peso2
If TextBox1 = "" Or TextBox2 = "" Then
TextBox4 = ""
End If
End Sub

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Or KeyCode = 40 Then
KeyCode = 0
End If
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 9 Or KeyAscii = 11 Then
Call val_peso
Else
End If
End Sub

Modulo TP_a

Public Sub val_talla()

If userform_TP_a.TextBox1 = "" Then
MsgBox "La talla no puede estar vacia"
Cancel = True
userform_TP_a.TextBox1.Value = ""
userform_TP_a.TextBox1.SetFocus
userform_TP_a.TextBox1.SelStart = 0
userform_TP_a.TextBox4 = ""
userform_TP_a.CheckBox1 = False
userform_TP_a.CheckBox2 = False
Else
If userform_TP_a.TextBox1 < 100 Or userform_TP_a.TextBox1 > 250 Then
MsgBox "Solo pueden ingresar pacientes con talla entre 200 y 250 cm"
userform_TP_a.TextBox1 = ""
Cancel = True
userform_TP_a.TextBox1.SetFocus
Else
userform_TP_a.TextBox2.SetFocus
End If
End If
End Sub

Public Sub val_peso2()
If userform_TP_a.TextBox1 > 100 And userform_TP_a.TextBox1 < 250 Then
If userform_TP_a.TextBox2 > 50 And userform_TP_a.TextBox2 < 300 Then

Dim talla As Integer
Dim peso As Integer
Dim ibm As Integer
Dim texbox4 As Integer
talla = Val(userform_TP_a.TextBox1)
peso = Val(userform_TP_a.TextBox2)
talla = (talla / 100) ^ 2
ibm = peso / talla
userform_TP_a.TextBox4 = ibm

Else
If userform_TP_a.TextBox1 = "" Or userform_TP_a.TextBox2 = "" Then

userform_TP_a.TextBox4 = ""
Else
End If

End If
End If
End Sub

Public Sub val_peso()

If userform_TP_a.TextBox2 = "" Then
MsgBox "El peso no puede estar vacio"
Cancel = True
userform_TP_a.CheckBox1 = False
userform_TP_a.CheckBox2 = False
userform_TP_a.TextBox4 = ""
Else
If userform_TP_a.TextBox2 < 50 Or userform_TP_a.TextBox2 > 300 Then
MsgBox "Solo pueden ingresar pacientes con peso entre 50 y 300 kg"
userform_TP_a.TextBox2 = ""
Cancel = True
Exit Sub
Else
userform_TP_a.CheckBox1.SetFocus
End If
End If
End Sub

En el codigo estan agregados tambien unso checkbox que no vienen al caso y setfocus y selstar que no logro que funciones.

Anda todo muy bien, cual es el problema:

Si presiono la tecla tab valida que esta vacío el text hace todas las advertencias pero al regresar al texbox el cursor queda a la mitad no en el inicio

Si pongo un valor correcto al pasar con tab a peso el cursor se pone nuevamente en el medio del peso en vez del principio, no logro ni que funcione el foco ni que funcione volver a la intentar 0.

Respuesta
1

Envíame tu archivo con los formularios, dime qué pasos tengo que hacer para visualizar el problema.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “mlobo4370” y el título de esta pregunta.

Enviado, esta en el segundo mail porque erre al paretar el botón gracias

Revisa bien mi correo, porque todavía no me llega.

Por favor fíjate en la carpeta spam por las dudas ya que me figura en la carpeta enviados y no me llego ningún error de delivery, la dirección la copie tal cual la pusiste más arriba, te dejo la mía por las dudas [email protected]

ahi te reenvio

Saludos

Me llego tu mail y te lo respondí nuevamente y adjunte la base. ¿Te llego?

Si me llegó, en la primera oportunidad la reviso.

En el Textbox1, la propiedad TabKeyBehavior la tienes como True.

Lo que significa que cuando presiones la tecla Tab, no la va a considerar como una tecla para avanzar al siguiente campo. Lo que va a hacer es considerar esa tecla para escribir una tabulación dentro del textbox1, es por eso que cuando regresa al textbox, te aparece "al centro" del textbox, pero no aparece al centro, más bien, lo que hizo fue ponerte un tabulador dentro del textbox.

Cambia la propiedad a False.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas