Evento KeyDown para reemplazar TAB en formulario de Excel
Publicado por Cristian (5 intervenciones) el 10/07/2017 16:28:49
Buenos días,
Me encuentro generando un formulario en Excel dentro de la Hoja con los Controles ActiveX y para reemplazar la acción del TAB utilice la acción KeyDown para poder saltar de control en control y permitir un interfaz amigable para el usuario, (utilice KeyDown porque según lo que investigue la acción del botón TAB no funciona en macros de Excel con Visual Basic)
El código para ejecutar la acción de saltar de campo a campo la represente así (ejemplos):
El código me funciona perfectamente par la acción que requiero pero se me está presentando un inconveniente, cada vez que presiono ENTER, ejecuta la actividad de pasar al siguiente campo como esta diseñado pero a su vez salta de celda en celda dentro del libro de Excel, lo que genera que el foco del formulario no sea el campo (CONTROL ACTIVEX) si no la celda del libro. cuando se realizar mucho esta acción de ENTER, sigue y sigue bajando de celda y llega al punto de perder la vista del formulario.
agradecería si alguien me puede colaborar, deseo desactivar de alguna manera que al presionar ENTER se mueva únicamente sobre los controles y no sobre el Libro de Excel.
muchas gracias.
Me encuentro generando un formulario en Excel dentro de la Hoja con los Controles ActiveX y para reemplazar la acción del TAB utilice la acción KeyDown para poder saltar de control en control y permitir un interfaz amigable para el usuario, (utilice KeyDown porque según lo que investigue la acción del botón TAB no funciona en macros de Excel con Visual Basic)
El código para ejecutar la acción de saltar de campo a campo la represente así (ejemplos):
1
2
3
4
5
6
7
8
9
10
11
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
ComboBox2.Activate
End If
End Sub
Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
TextBox1.Activate
End If
End Sub
El código me funciona perfectamente par la acción que requiero pero se me está presentando un inconveniente, cada vez que presiono ENTER, ejecuta la actividad de pasar al siguiente campo como esta diseñado pero a su vez salta de celda en celda dentro del libro de Excel, lo que genera que el foco del formulario no sea el campo (CONTROL ACTIVEX) si no la celda del libro. cuando se realizar mucho esta acción de ENTER, sigue y sigue bajando de celda y llega al punto de perder la vista del formulario.
agradecería si alguien me puede colaborar, deseo desactivar de alguna manera que al presionar ENTER se mueva únicamente sobre los controles y no sobre el Libro de Excel.
muchas gracias.
Valora esta pregunta


0