Problema con teclado numérico se desactiva solo cuando ejecuto un código vba

Tengo un problema el cual es que ingrese un código vba para poder por medio de una tecla del teclado oprimir algunos de los botones del formulario y así que sea más rápido ingresar datos sin necesidad de usar mucho el mouse pero al oprimir las teclas, el teclado numérico automáticamente se desactiva. Esto no me ha ayudado mucho porque no me doy cuenta y algunos registros donde uso el teclado numérico se van sin datos y me toca volver he ingresarlos. Este es el código:

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyInsert
Me.Informe.SetFocus
SendKeys "{ENTER}"
KeyCode = 0
Case vbKeyEnd
Me.btn_agregar.SetFocus
SendKeys "{ENTER}"
KeyCode = 0
Me.cliente.SetFocus
End Select
End Sub

Al ejecutarse este código hay alguna manera que al ejecutar este código no pase eso o hay algún error en el código espero me puedan ayudar

1 Respuesta

Respuesta

Lo que describes es un problema típico de usar el SendKeys, yo huyo de él como de la peste (además de ese genera más problemas).

En el caso que nos describes entiendo que lo que haces es lanzar el evento clic de un botón en función de la tecla pulsada, puedes hacerlo directamente por código:

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
    Case vbKeyInsert
        Informe_Click
    Case vbKeyEnd
        btn_agregar_Click
        Me.cliente.SetFocus
End Select
KeyCode = 0
End Sub

No funciona dice que no se ha definido sub o función 

Tendrás que poner el nombre del evento que quieras que se ejecute. Yo he supuesto los nombres.

No ya lo tiene pero cuando sale eso aparece seleccionado la parte que dice informe_click y dice lo anterior mente mencionado espero me hayas entendido

Tienes que poner el nombre exacto del evento que se ejecuta al pulsar ENTER cuando el campo Informe tiene el foco, lo mejor será que veas en el código el nombre del evento y hagas un copiar / pegar.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas