Discussion:
Activar y desactivar submenús
(demasiado antiguo para responder)
pac
2005-12-12 17:20:22 UTC
Permalink
Hola mediante este código, se activan y desactivan diferentes submenús en exce

Application.CommandBars("File").Controls(4).Enabled = True o Fals
‘ Desactiva o activa la opción guardar del menú Archiv

¿Como puedo hacerlo para activar o desactivar, las opciones de los submenús
Por poner un ejemplo en el menú Formato hay las opciones Celda, Fila, Columna, Hoja
En la opción Fila hay las opciones como Alto, Autoajustar, Mostrar, Ocultar
¿Cómo puedo mediante código desactivar alguna de las opciones de Fila
Es decir que yo pueda dejar la opción Fila activa y algunas de sus opciones desactivadas
Por ejemplo desactivar la opción Alto y Ocultar
Gracias por la atención prestada
pa

--
pac

-----------------------------------------------------------------------
Ver este tema: http://www.softwaremix.net/viewtopic-464605.htm

Enviado desde http://www.softwaremix.net
Héctor Miguel
2005-12-13 04:14:03 UTC
Permalink
hola, pac !
Hola mediante este codigo, se activan y desactivan diferentes submenus en excel
Application.CommandBars("File").Controls(4).Enabled = True o False
‘ Desactiva o activa la opcion guardar del menu Archivo
OJO: 'siempre y cuando'... el cuarto control del menu archivo sea 'guardar' :(
'recuerda' que el usuario tiene todas las opciones de 'personalizar' las barras de menus y comandos :))
Como puedo... activar o desactivar, las opciones de los submenus?
... ejemplo en el menu Formato hay las opciones Celda, Fila, Columna, Hoja.
En la opcion Fila hay las opciones como Alto, Autoajustar, Mostrar, Ocultar.
Como puedo mediante codigo desactivar alguna de las opciones de Fila?
... dejar la opcion Fila activa y algunas de sus opciones desactivadas.
... desactivar la opcion Alto y Ocultar.
-> despues del comentario anterior [creo que] una alternativa [relativamente] mas... 'confiable'...
es hacer referencia a los 'Id' correspondientes a las opciones de comando que deseas des/re/habilitar [p.e.]
los numeros de Id para alto y ocultar [del sub-menu de fila en el menu de formato] son: 541 y 883
-> te paso un ejemplo al final
-> para mayor informacion referente a los Id de los commandbars...
visita: http://support.microsoft.com/kb/q213552/

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

ejemplo: como [supongo] va a ser una accion 'repetitiva' [eso de andar des/re/habilitando los comandos]...
te sugiero definir una funcion personalizada ejecutable solo para procedimientos vba que...
-> 'reciba' la informacion con el 'Id' del control y una variable 'booleana' para des/activarlo [p.e.]
=== en un modulo de codigo 'normal' ===
Option Private Module
Function ActivarComando( _
ByVal Boton As Integer, _
Optional ByVal Activado As Boolean = True)
Dim Barra As CommandBar: On Error Resume Next
For Each Barra In Application.CommandBars
Barra.FindControl(Id:=Boton, Recursive:=True).Enabled = Activado
Next
End Function

y despues, dentro de las acciones 'normales' de tu codigo, puedes usarla para des/re/habilitar los comandos que le digas...
Sub Des_Habilitar_Comandos()
ActivarComando 541, False
ActivarComando 883, False
End Sub
o...
Sub Re_Habilitar_Comandos()
ActivarComando 541
ActivarComando 883
End Sub

nota: no olvides -> dejarlos habilitados ANTES de terminar con tu aplicacion <- ;)
pac
2005-12-14 18:33:55 UTC
Permalink
gracias Hector Miguel por tu ayuda, funciona muy bien
En la página de enlace que me has dado mire y hay algunos códigos de commandbars, que no están o no se verlos
Por ejemplo en el menu Tools, están todos los submenus, pero creo que falta
mucha cosa. Ayudame por favor por si no lo se ver
Por ejemplo en tools_proteger: proteger hoja, proteger libro ect. En tools_macro
macros, grabar nueva macro, seguridad ect
Igual están en el listado pero yo no los se ver ¿puedes ayudarme
Otra pregunta ¿funcionan igual estos códigos con excel 2003 o hay otro listado diferente para excel 2003
gracias
pa

--
pac

-----------------------------------------------------------------------
Ver este tema: http://www.softwaremix.net/viewtopic-464605.htm

Enviado desde http://www.softwaremix.net
Héctor Miguel
2005-12-14 19:34:31 UTC
Permalink
hola, pac !
... hay algunos codigos de commandbars, que no estan o no se verlos.
... en el menu Tools, estan todos los submenus, pero creo que falta mucha cosa... por si no lo se ver.
... ejemplo en tools_proteger: proteger hoja, proteger libro ect.
... tools_macro: macros, grabar nueva macro, seguridad ect.
Igual estan en el listado pero yo no los se ver
... funcionan igual estos codigos con excel 2003 o hay otro listado diferente para excel 2003?
-> con relacion a 'cambios' o listdos diferentes para excel 2003 [hasta donde se]...
son los mismos Id's desde la version 97 [salvo ligeros cambios como en la estructura de 'autosuma' y...]

-> con relacion a los Id's que no has 'visto' [y que si estan en la pagina en la seccion de menus contextuales]...
tools > proteger -> Id:=30029
tools > macro -> Id:=30017
tools > macro > grabar nueva macro -> id:=184
tools > macro > seguridad -> Id:=3627
-> estos no estan :-((
tools > proteger > proteger hoja -> Id:=893
tools > proteger > proteger libro -> Id:=894
tools > proteger > proteger y compartir -> Id:=3059

-> [seguramente] encontraras de utilidad lo siguiente: http://www.bmsltd.ie/DLCount/DLCount.asp?file=CBList.zip

saludos,
hector.

Loading...