Mover de un Campo a otro Campo

26/01/2004 - 05:46 por Ale | Informe spam
Hola!!!!
Tengo una forma con 4 textbox y quiero que cuando el
usuario pulse la tecla TAB se desplace de un campo a otro.
He protejido la hoja de excel y no logro que se desplase
Puede alguien ayudarme

Gracias!!!!!!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/01/2004 - 06:22 | Informe spam
hola, Ale !

... 4 textbox y quiero que cuando el usuario pulse la tecla TAB se desplace de un campo a otro [...]



para excel 2000 [o superior] y suponiendo que los textboxes se llaman TextBox1 ... TextBox4
las siguientes lineas cambiaran de textbox activo al siguiente =>usando la tecla {Tab}<[o... si combinas {Tab} con {Mayus} se moveran al anterior]
[si NO hay siguiente o anterior... regresa el enfoque a la seleccion actual de la hoja]
[le agregue una salida inmediata si presionas la tecla {Enter}] :))
en el modulo de codigo de la hoja que contiene a los textboxes ==Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox2").Activate Else SendKeys "{Esc}"
End If
End Sub
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox3").Activate Else OLEObjects("TextBox1").Activate
End If
End Sub
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox4").Activate Else OLEObjects("TextBox2").Activate
End If
Private Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 1 Then Me.OLEObjects("TextBox3").Activate Else SendKeys "{Esc}"
End If
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#2 Ale
26/01/2004 - 23:49 | Informe spam
Muchas Gracias Hector...
Es correcta tu explicación, y Cómo hago con Excel 97,
donde esta solución no funciona?
Gracias, nuevamente

Ale



hola, Ale !

... 4 textbox y quiero que cuando el usuario pulse la




tecla TAB se desplace de un campo a otro [...]

para excel 2000 [o superior] y suponiendo que los


textboxes se llaman TextBox1 ... TextBox4
las siguientes lineas cambiaran de textbox activo al


siguiente =>usando la tecla {Tab}<>[o... si combinas {Tab} con {Mayus} se moveran al
anterior]
[si NO hay siguiente o anterior... regresa el enfoque a


la seleccion actual de la hoja]
[le agregue una salida inmediata si presionas la tecla


{Enter}] :))
en el modulo de codigo de la hoja que contiene a los


textboxes ==>Private Sub TextBox1_KeyDown(ByVal KeyCode As
MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox2").Activate


Else SendKeys "{Esc}"
End If
End Sub
Private Sub TextBox2_KeyDown(ByVal KeyCode As


MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox3").Activate


Else OLEObjects("TextBox1").Activate
End If
End Sub
Private Sub TextBox3_KeyDown(ByVal KeyCode As


MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 0 Then Me.OLEObjects("TextBox4").Activate


Else OLEObjects("TextBox2").Activate
End If
Private Sub TextBox4_KeyDown(ByVal KeyCode As


MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
If Shift = 1 Then Me.OLEObjects("TextBox3").Activate


Else SendKeys "{Esc}"
End If
End Sub

saludos,
hector.


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
27/01/2004 - 01:56 | Informe spam
hola, Ale !

... y Como hago con Excel 97, donde esta solucion no funciona?



para el caso de excel-'97 es necesario 'matar' el efecto de la propiedad:
'TakeFocusOnClick' [que es true 'por omision' en objetos activex incrustados en hojas de calculo]
con una 're-seleccion' del rango actual de la hoja [que 'falla' en excel 2000 ya que fue corregido el 'foco'] :))

cambia las instrucciones [en excel-'97] a lo siguiente:

saludos,
hector.

en el modulo de codigo de 'la hoja' ==Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
Selection.Activate
If Not Shift <> 0 Then Me.OLEObjects("TextBox2").Activate
End If
End Sub
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
Selection.Activate
If Not Shift <> 0 Then Me.OLEObjects("TextBox3").Activate Else OLEObjects("TextBox1").Activate
End If
End Sub
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
Selection.Activate
If Not Shift <> 0 Then Me.OLEObjects("TextBox4").Activate Else OLEObjects("TextBox2").Activate
End If
End Sub
Private Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then SendKeys "{Esc}"
If KeyCode = vbKeyTab Then
Selection.Activate
If Shift <> 0 Then Me.OLEObjects("TextBox3").Activate
End If
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida