Deshabilitar todos los comandos o combinaciones de teclas en excel
Es una pregunta exclusivamente para Dante Amor
Hola
Como todo lo que haga en los formularios lo quiero a base de botones, me gustaría poder deshabilitar la mayoría o si se puede todas las combinaciones de teclas o comandos como Alt + F4, etc. Para así solo poder realizar las acciones con los botones personalizados.
1 respuesta
H o l a:
Pon lo siguiente en los formularios:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.Dante Amor
Cancel = (CloseMode = vbFormControlMenu)
End Sub
También hay que poner esta línea:
Application.EnableCancelKey = xlDisabled
Pero todavía no la pongas hasta que termines de programar, ya que no podrás interrumpir la macro en caso necesario. Actívala para probar, después de terminar tus pruebas la desactivas y cuando tengas todo listo la activas.
S a l u d o s
Hola
Disculpa mi ignorancia. Lo que he visto es que tengo con el cancel=(Closemode...) deshabilitada la X y eso está bien porque uso botones para SALIR y cerrar formularios...
pero lo que sigo pudiendo hacer es apretar comandos o combinaciones de teclas como por ejemplo para cerrar el excel como alt + F4
Lo que quería con mi pregunta es poder anular, deshabilitar esas combinaciones de teclas como alt + F4 o alt + F11 etc. y eso a pesar de la macro que me indicas lo sigo pudiendo hacer.
Ya me dices...
Un saludo
Pusiste esto:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.Dante Amor
Cancel = (CloseMode = vbFormControlMenu)
End Sub
¿Revisaste el archivo que te envié?
Hola
Sí puse la macro, incluso he probado todo directamente desde el dam11c. Comprobé que no puedo cerrar con la X los formularios pero en cuanto a combinaciones de teclas como Alt + F4 o alt + f11 siguen habilitados en el excel.
Por ejemplo si abro el excel, ingreso como administrador y selecciono un registro en userform1 y pulso enter, cuando estoy en la hoja "TITULOS" con el registro seleccionado, entonces pulso "alt + F4" y la aplicación se cierra.
Como te comenté querría poder deshabilitar las combinaciones de teclas
Un saludo
Como te comenté en mi versión de excel 2007 me funciona bien, deberás buscar las versiones para excel 2003.
Hay que conocer que excel no es una herramienta para que crear aplicaciones, sin duda, tenemos la aplicación de VBA, pero VBA no contiene toda la funcionalidad de Visual Basic para el desarrollo de aplicaciones.
Sin embargo, excel tiene algunas utilidades que permiten mostrar los desarrollos en VBA como una "aplicación", pero tiene sus limitaciones y es un tanto inestable por la variedad en las versiones de MS Office, a eso hay que sumarle las versión de windows a 64 y 32.
Si realmente quieres una aplicación entonces deberás pensar en comprar un software dedicado para ello, de eso hay gran variedad en el mercado, puede ser el mismo Visual Basic, utilizando como base de datos Access, o puedes utilizar otro lenguaje; o contratar los servicios de consultores de software y que te costeen un desarrollo a la medida de lo que deseas.
No hay que perder de vista que excel, como hoja de calculo, tiene un gran poder, y es ahí, donde hay que sacarle mucho provecho.
S a l u d o s
Hola
¿qué hace realmente la línea "Application.EnableCancelKey = xlDisabled"?
¿Es realmente la línea que deshabilita las combinaciones de teclas como "alt + f4"?
Un saludo
Para interrumpir una macro presionas las teclas Alt + Pausa y la macro se detiene.
Para evitar que presiones Alt + Pausa, utilizas esa instrucción.
Hola
Creo que no me sé explicar...
Lo único que quiero deshabilitar, bloquear son combinaciones de teclas....
Por ejemplo con Alt + F4 puedo cerrar excel
¿Como puedo deshabilitarlo? O sea ¿cómo puedo evitar que se cierre excel con esa combinación de teclas?
Lo que me enviaste no deshabilita combinaciones de teclas o comandos creo...
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Por.Dante Amor
Cancel = (CloseMode = vbFormControlMenu)
End Sub
Application.EnableCancelKey = xlDisabled
Ninguno de los códigos que me indicas deshabilita Alt + F4 o Alt +F11 ni en excel 2003 ni en excel 2007 me parece. No es un problema de versión entiendo.
Ya me dices
Saludo
Claro que ya te entendí.
Creo que yo no me sé explicar.
Los comandos que te envié deshabilitan las teclas y me funciona muy bien en la versión 2007.
Yo entro al formulario y presiono la tecla Alt + F4 y no se cierra excel.
Y está combinación Alt + Pausar, también también la tienes que deshabilitar, de lo contrario, si la presiona pues te sales de excel.
El problema de versiones yo no lo puedo resolver.
Te repito en excel 2007 me funciona bien.
Ok
Pues gracias de nuevo... por el esfuerzo y por tu tiempo.
Sigo con el problema de las teclas pero buscaré a ver cómo lo soluciono.
En todo caso muy agradecido por la ayuda.
Un saludo
Hola
El código que me enviaste al final funciona bien como dices en los formularios.
Es decir si tengo un formulario abierto y presiono Alt+F4 no hace nada, no se cierra...
Si lo has probado desde los forms funciona bien pero si lo pruebas con una hoja abierta como "TITUTLOS" y presionas las teclas, aquí no están deshabilitadas.
Si estoy en la hoja "TITULOS" con los formularios cerrados y presiono Alt + F4 sí se me cierra excel... te lo digo como anotación a lo que hablábamos, no para pedirte más explicaciones.
Es decir el código funciona en los forms pero no si presiono el comando desde la hoja.
En todo caso solo quería comentarlo como curiosidad... no hace falta que sigamos con el tema o me contestes... de hecho ya lo puntué.
Gracias como siempre
Aunque no pidas explicaciones, esto es lo que pediste:
"Como todo lo que haga en los formularios lo quiero a base de botones, me gustaría poder deshabilitar la mayoría o si se puede todas las combinaciones de teclas o comandos como Alt + F4, etc. Para así solo poder realizar las acciones con los botones personalizados."
Lo pediste en los formularios.
Hola
Creo que en el texto nunca especifico que SOLO se deban deshabilitar los comandos en los formularios, sino que como ya tengo botones en formularios no quiero comandos y me refiero en general... que no quiero comandos como alt + F4 en excel.
Esto es lo que puse:
"Como todo lo que haga en los formularios lo quiero a base de botones, me gustaría poder deshabilitar la mayoría o si se puede todas las combinaciones de teclas o comandos como Alt + F4, etc. Para así solo poder realizar las acciones con los botones personalizados."
Esto es lo que entendiste:
"Como todo lo que haga en los formularios lo quiero a base de botones, me gustaría poder deshabilitar la mayoría o si se puede todas las combinaciones de teclas o comandos como Alt + F4 EN LOS FORMULARIOS, etc. Para así solo poder realizar las acciones con los botones personalizados."
Como ves la frase "EN LOS FORMULARIOS" la sobreentendiste...
De hecho mira lo que pone el título de la pregunta:
"Deshabilitar todos los comandos o combinaciones de teclas en excel"
Siempre me he referido a excel, globalmente no pongo:
"Deshabilitar todos los comandos o combinaciones de teclas en FORMULARIOS DE excel"
El propio título de la pregunta te habla de todo el excel, no solo en los formularios.
Qué sentido tendría deshabilitar los comandos solo en los forms... y entonces cuando el administrador pulsando "enter" en listbox abre la hoja "TITULOS" qué ocurre... que no estaría deshabilitado. En todo caso ante la duda no pasa nada por preguntar.
Yo no veo mucho sentido a este discusión creo que no es para tanto el hecho de que no haya sabido ser más específico, pero también creo que no has sabido leer entre líneas, lo que realmente necesitaba.
En todo caso ya lo resolví en la hoja con "Application.onkey ...".
Repito que estoy muy agradecido por tu ayuda y mis respuestas no buscan en ningún momento la discusión, al contrario creo como ya te dije que eres un experto genial y que me has ayudado muchísimo. Solo puedo agradecértelo.
Un saludo
Si consideras que prefieres no seguir ayudándome, o como me dijiste... que es preferible que busque consultores o programas ya hechos, en vez de hacer todo lo que se pueda con VBA en excel, por supuesto que no pasa nada.
Seguriré investigando por mi cuenta, de verdad no hay problema.
Un saludo y gracias
- Compartir respuesta