Desactivar opcion menu emergente|

Fejoal mi pregunta es la siguiente: ¿Cómo desactivo el menu que me aparece al usar el botón secundario del mouse?
1

1 respuesta

Respuesta
2
Podrás hacerlo pero para un archivo determinado.
En tal archivo, activa el editor de Visual Basic (presiona Alt+F11) y busca la hoja que dice "ThisWorkbook" ( o "EsteLibro" según la versión). Da doble click sobre ella.
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
Cancel = True
End Sub
Cierra el editor de VBA.
A partir de ahora, al dar click derecho sobre cualquiera de sus hojas NO aparecerá el menú contextual.
Espero haber respondido lo suficientemente rápido. (Al igual que tu devolución ;)
Un abrazo!
Fernando
Copié el código pero me sigue apareciendo el menú contextual!
EL código que te dí funciona al menos en mi versión de MS Excel, dato -este- que no proporcionaste.
Puede ser que la sentencia Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel. Range, Cancel As Boolean)
Sea distinta en tu versión.
Entonces, haz lo siguiente:
Activa el editor de Visual Basic (Alt+F11) y busca la hoja que dice "ThisWorkbook" ( o "EsteLibro" según la versión). Da doble click sobre ella. (Es importante que el código esté en esta hoja).
En ella verás dos menúes descolgables en su parte superior.
Del primero, a la izquierda, selecciona "Workbook" y, del segundo menú elige: "SheetBeforeRightClick"
Entre las dos lineas que aparezcan escritas, coloca la siguiente instrucción:
Cancel = True
Y cierra el Editor de Visual Basic.
Esto efectiva anula el menú contextual para cualquier hoja de ese libro.
Puedes efectuar el mismo procedimiento sobre una hoja en particular para que sólo no esté disponible en tal hoja.
Prueba y dime.
Un abrazo!
Fernando
¿Cómo desactivo las opciones de ctr+l (por ejemplo) o alt+mayus+f8 o todos esos accesos rápidos? Gracias
En realidad, no hay un comando que inhabilite TODOS los accesos rápidos.
La solución pasa por instruir en VBA qué hacer cuando esas teclas son presionadas.
Para ello necesitarás unos comandos también al abrir el archivo que luego deberán ser revertidos al cerrarlo para que restablecer su funcionamiento normal.
Inserta un módulo nuevo y pega allí todo esto:
Sub Nocopia() 'Inhabilita los atajos Ctrl + L y Alt Shift F8
Application. OnKey "^l", "cancelalo"
Application. OnKey "^L", "cancelalo"
Application.OnKey "+%{F8}", "cancelalo"
End Sub
Sub cancelalo()
Cancel = True
End Sub
Sub Sicopia() 'Habilita los atajos anteriores
Application.OnKey "^l"
Application.OnKey "^L"
Application.OnKey "+%{F8}"
End Sub
Tienes tres macros. El primero inhabilita los comandos Ctrl + L y Alt+Shift+F8 diparando el segundo macro cuando se presionen cualquiera de esos atajos. El segundo macro, simplemente cancela la instrucción. Finalmente el tercer macro restituye la funcionalidad a la teclas para que puedan ser usadas nuevamente al salir del archivo.
Por lo tanto, deberías tener un llamado a la primera macro al abrir el archivo, es decir en el ThisWorkboook deberías tener esto (además del anterior para el menú contextual):
Private Sub Workbook_Open()
Nocopia
Sicopia
End Sub
Calculo que esto resolverá tu problema. Si así fuera, ya sabes qué hacer...
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas