Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como DESHABILITAR COMBINACION De TECLADO de Excel VBA #501

Inhabilitar combinación de teclas macros de excel

Inhabilitar la combinación de teclas en Excel – Como Asignar a una Tecla o combinación de Teclas a una Macro

En este post se mostrará como se puede deshabilitar la combinación de teclas para realizar un determinado procedimiento en Excel, a través de OnKey se inutiliza el atajo de teclado o combinación de teclas a las que se le puede haber signado una macro o una función nativa de Excel.

Se un ganador aprende Excel, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

  
 

Mira el funcionamiento de la macro y una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Evitar que se use en Excel la combinación de teclas o Atajos de Teclado

Al descargar el archivo de ejemplo y  al abrir el Libro de Excel utilizado como ejemplo se podrá observar que se han desactivado las combinaciones de teclas en Excel:

Ctrl + «J» que sirve para copiar una celda hacia abajo en el rango seleccionado 

Ctrl + «D» que sirve para copiar una celda hacia derecha en el rango seleccionado 

En este ejemplo se trabajó con estas combinaciones de teclado de Excel, pero sirve para cualquier combinación de teclas, en el siguiente post, listado de atajos de teclado o combinaciones de teclas en Excel, tienes prácticamente todas las combinaciones de teclas o atajos de teclado que se pueden usar en Excel.

En el ejemplo existe un botón para activar el atajo de teclado en Excel y otro para desactivar la combinación de teclas.

Este ejemplo sirve para asignar una macro a una combinación de teclas o atajo de teclado, es decir que si establece una cierta combinación de teclado se puede ejecutar la macro que se le asigne esto es posible gracias al comando Application.OnKey.

Explicación del código para Ejecutar Macro al Presionar una Tecla

En este ejemplo al iniciar el libro Excel deshabilita la combinación de teclas Ctrl + «J» y Ctrl + «D» dicha acción se hace con el siguiente código en el evento «OPEN» del libro de Excel:

Application.OnKey «^{j}», «nada» ‘anula pegar
Application.OnKey «^{d}», «nada» ‘anula pegar

Como dicha combinación de teclado ha sido deshabilitada al salir del libro se debe volver a restablecer por ello se usa el siguiente código en el evento «BEFORE CLOSE» 

Application.OnKey «^{j}», «vuelve» ‘anula pegar
Application.OnKey «^{d}», «vuelve» ‘anula pegar

Como se puede apreciar en los códigos mostrados anteriormente con el comando Application.OnKey se está asignando a la combinación de teclas Ctrl + «J» y Ctrl + «D» una macro en el primer caso que deshabilita la combinación de tecla se asigna la macro denominada «nada» y en el segundo caso cuando se cierra el libro se asigna la macro «vuelve», en párrafos siguientes veremos que contiene cada macro.

Ahora de esta forma tal cual deshabilitamos combinación de tecla en Excel, en vez de inhabilitar la combinación de teclas al abrir el libro podemos asignar una macro a la combinación de teclas, es decir a la combinación de teclas Ctrl + «J» y Ctrl + «D» podríamos asignarle cualquier macro que nosotros queramos que se ejecute con dicho atajo de teclado.

La macro para deshabilitar la combinaciones de teclas en Excel nombradas es:

Sub nada()
End Sub

Para inhabilitar la combinación de tecla solo se debe asignar una macro a dicha atajo de teclado, donde la macro que se asigne no haga absolutamente nada como se muestra anteriormente, la macro no contiene ningún código solo los comandos de apertura y fin de un procedimiento.

Para restablecer la funcionalidad a Ctrl + «J» y Ctrl + «D» se debe asignar a dichas combinación nuevamente sus funciones, con el siguiente código:

Application.OnKey «^{j}»
Application.OnKey «^{d}»

Lo explicado también es útil para asignar a cualquier combinación de teclas en Excel o atajo de teclados una macro, en el primer caso se asigna la macro llamada «mymacro» a la tecla «F10», fijense que aca la macro no se asigna a una combinación de teclas sino a una sola tecla que es la F10.

Application.OnKey «{F10}», «mymacro»

Application.OnKey «{F5}», «mymacro1»

Application.OnKey «{F6}», «mymacro2»

Para asignar a una combinación de tecla por ejemplo «Ctrl + H» se debe usar el código que sigue:

Application.OnKey «^{h}», «mymacro»

En el código anterior se asigna a Ctrl + H la macro denominada «mymacro», es decir que si se presiona esa combinación de teclado o atajo de teclas se ejecutará la macro llamada «mymacro.

En el post siguiente muestra el código de las distintas teclas, o dicho de otro modo como hacer referencia a distintas teclas para asignarles una macro.

Descarga del archivo ejemplo que inhabilita la combinación de teclado

Descarga en forma gratis el ejemplo desde el final del post, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Código para Deshabilitar combinación e Teclas o Atajos de Teclado

Código que se ingresa en el ThisWorkBook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey «^{j}», «vuelve» ‘anula pegar
Application.OnKey «^{d}», «vuelve» ‘anula pegar

End Sub

Private Sub Workbook_Open()
Application.OnKey «^{j}», «nada» ‘anula pegar
Application.OnKey «^{d}», «nada» ‘anula pegar
End Sub

Código que se ingresa en el modulo

Sub nada()
End Sub
Sub vuelve()
Application.OnKey «^{j}»
Application.OnKey «^{d}»
End Sub
Sub deshabilita()
Application.OnKey «^{j}», «nada» ‘anula pegar
Application.OnKey «^{d}», «nada» ‘anula pegar
MsgBox («La combinación de teclas se habilitó con éxito»), vbInformation, «AVISO»
End Sub
Sub habilita()
Call vuelve
MsgBox («La combinación de teclas se habilitó con éxito»), vbInformation, «AVISO»
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407