Menú personalizado

25/02/2005 - 18:57 por J.LL.R | Informe spam
Hola a todos los amigos del foro.
Mi pregunta es:
hice un menú personalizado en la barra de menú y le asigne
una macro a la opción ,pero quiero que este solo aparezca
solo en mi libro y no se como quitarlo al salir y ponerlo
al abrir el libro ,Si alguien me puede ayudar.
Gracias por su colaboracion.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/02/2005 - 01:50 | Informe spam
hola, J.LL.R !

... menu personalizado en la barra de menu y le asigne una macro
... como quitarlo al salir y ponerlo al abrir el libro [...]



1.- escribe un procedimiento que 'borre/elimine' el boton del menu
[y la llamas en los eventos '_open' y '_beforeclore' del libro]
2.- escribe un procedimiento que 'agregue' el boton al menu
[y lo llamas SOLO en el evento '_open' del libro]
-> te expongo un ejemplo al final, usando la propiedad 'caption'
y suponiendo que lo agregaste al menu de 'herramientas' [Tools] y 'se llama'... 'Mi comando'

si cualquier duda... ¿comentas?
saludos,
hector.
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
AgregarBoton
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
EliminarBoton
End Sub
en un modulo de codigo 'normal' ==Option Private Module
Sub NuevoBoton()
EliminarBoton
With Application.CommandBars("Tools")
With .Controls.Add(msoControlButton, , , , True)
.BeginGroup = True
.Caption = "Mi comando"
.FaceId = 23
.OnAction = "NombreDeLaMacro"
End With
End With
End Sub
Sub EliminarBoton()
On Error Resume Next
Application.CommandBars("Tools").Controls("Mi comando").Delete
End Sub
Respuesta Responder a este mensaje
#2 J.LL.R
28/02/2005 - 15:57 | Informe spam
Hola Héctor,funciona perfecto,y si a 'Mi comando'le
quiero agregar submenu como se haria , es posible crear el
menu directo en la barra y no dentro de uno de Excel y
quitar los menu trae por defecto Archivo,Edicion
y dejar los que cree ,pero que al cerrar mi libro se
restablezcan de nuevo.
Atte J.LL.R.

hola, J.LL.R !

... menu personalizado en la barra de menu y le asigne




una macro
... como quitarlo al salir y ponerlo al abrir el libro




[...]

1.- escribe un procedimiento que 'borre/elimine' el boton


del menu
[y la llamas en los eventos '_open' y '_beforeclore'


del libro]
2.- escribe un procedimiento que 'agregue' el boton al


menu
[y lo llamas SOLO en el evento '_open' del libro]
-> te expongo un ejemplo al final, usando la


propiedad 'caption'
y suponiendo que lo agregaste al menu


de 'herramientas' [Tools] y 'se llama'... 'Mi comando'

si cualquier duda... ¿comentas?
saludos,
hector.
en el modulo de codigo del libro [ThisWorkbook] ==>Private Sub Workbook_Open()
AgregarBoton
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
EliminarBoton
End Sub
en un modulo de codigo 'normal' ==>Option Private Module
Sub NuevoBoton()
EliminarBoton
With Application.CommandBars("Tools")
With .Controls.Add(msoControlButton, , , , True)
.BeginGroup = True
.Caption = "Mi comando"
.FaceId = 23
.OnAction = "NombreDeLaMacro"
End With
End With
End Sub
Sub EliminarBoton()
On Error Resume Next
Application.CommandBars("Tools").Controls("Mi


comando").Delete
End Sub


.

Respuesta Responder a este mensaje
#3 Héctor Miguel
28/02/2005 - 19:29 | Informe spam
hola, J.LL.R !

... y si a 'Mi comando' le quiero agregar submenu como se haria
... crear el menu directo en la barra... y quitar los menu trae por defecto Archivo, Edicion
... pero que al cerrar mi libro se restablezcan de nuevo.



un ejemplo de una forma al final
si cualquier duda... ¿comentas?
saludos,
hector.
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Enabled = False
PonerMiBarra
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Worksheet Menu Bar").Enabled = True
QuitarMiBarra
End Sub
en un modulo de codigo 'normal' ==Option Private Module
Sub PonerMiBarra()
QuitarMiBarra
With Application.CommandBars.Add("MiBarra", , True, True)
With .Controls.Add(msoControlPopup, , , , True)
.Caption = "Mi menu"
With .Controls.Add(msoControlButton, , , , True)
.BeginGroup = True
.Caption = "Mi comando"
.OnAction = "NombreDeLaMacro"
End With
End With
.Visible = True
End With
End Sub
Sub QuitarMiBarra()
On Error Resume Next
Application.CommandBars("MiBarra").Delete
End Sub
Sub NombreDeLaMacro()
MsgBox "Hoa !!!"
End Sub
Respuesta Responder a este mensaje
#4 J.LL.R
01/03/2005 - 18:27 | Informe spam
Hola Héctor funciona muy bien, para agregar mas submenu
repetí el
With .Controls.Add(msoControlButton, , , , True)
.
.
End With
y para agregar otro menú
With .Controls.Add(msoControlPopup, , , , True)
.
.
End With

1-Es así como se agregan mas menú y submenu ?.
2- A esta barra o los submenu se le puede adicionar
comandos (por codigo)por ejemplo Guardar,Abrir,como se
hace al personalizar una barra.?
3-Porque a veces al poner un punto se despliega una lista
de propiedades y otras veces no, por ejemplo dentro del
with no se me despliega ?.

Un saludo J.LL.R






hola, J.LL.R !

... y si a 'Mi comando' le quiero agregar submenu como




se haria
... crear el menu directo en la barra... y quitar los




menu trae por defecto Archivo, Edicion
... pero que al cerrar mi libro se restablezcan de




nuevo.

un ejemplo de una forma al final
si cualquier duda... ¿comentas?
saludos,
hector.
en el modulo de codigo del libro [ThisWorkbook] ==>Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Enabled =


False
PonerMiBarra
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Worksheet Menu Bar").Enabled =


True
QuitarMiBarra
End Sub
en un modulo de codigo 'normal' ==>Option Private Module
Sub PonerMiBarra()
QuitarMiBarra
With Application.CommandBars.Add("MiBarra", , True,


True)
With .Controls.Add(msoControlPopup, , , , True)
.Caption = "Mi menu"
With .Controls.Add(msoControlButton, , , , True)
.BeginGroup = True
.Caption = "Mi comando"
.OnAction = "NombreDeLaMacro"
End With
End With
.Visible = True
End With
End Sub
Sub QuitarMiBarra()
On Error Resume Next
Application.CommandBars("MiBarra").Delete
End Sub
Sub NombreDeLaMacro()
MsgBox "Hoa !!!"
End Sub


.

Respuesta Responder a este mensaje
#5 Héctor Miguel
02/03/2005 - 06:24 | Informe spam
hola, J.LL.R !

... funciona... para agregar mas submenu repeti el With .Controls.Add(msoControlButton, , , , True)


... y para agregar otro menu With .Controls.Add(msoControlPopup, , , , True)
1- Es asi como se agregan mas menu y submenu ?.



=> para el 'tipo' de estructura propuesto en el ejemplo... si ;)

2- A esta barra o los submenu se le puede adicionar comandos (por codigo)


... por ejemplo Guardar, Abrir, como se hace al personalizar una barra.?

=> si, solo necesitas ->saber/conocer<- o la propiedad 'caption' o la propiedad 'id' [segun el 'tipo' de control]
-> toma en cuenta que segun el idioma de la version, el 'caption' pudiera 'variar'
-> para consultar los 'id' de los comandos integrados visita: http://support.microsoft.com/kb/q213552/

3- Porque a veces al poner un punto se despliega una lista de propiedades y otras veces no


... por ejemplo dentro del with no se me despliega ?.

=> NO se 'despliega' [en el ejemplo propuesto] SOLO en el bloque with ->del control de 'segundo nivel'<-
SI dentro de los with de 'niveles superiores' [o los que estan 'directamente emparentados' con objetos 'definidos']

si cualquier duda... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida