Menus en la barra de herramientas

14/06/2005 - 13:35 por Angel O | Informe spam
Hola amigos. Hace unas semanas lei algon en el foro sobre como poner botones
de menus en la barra de herramientas y ahora no lo localizo. Alguien pude
decirme dond está? Se trata de poner menus y submenus a partir de una opción
en la barra de herramientas. Gracias a todos, el foro creo que es muy, muy
interesante, y los no expertos, aprendemos mucho de vosotros.

Gracias de nuevo

Angel O.

Preguntas similare

Leer las respuestas

#6 Angel O
14/06/2005 - 18:16 | Informe spam
Fernando, perdona, y para crear un submenu dentro del primer menú?. Lo
siento pero no tengo ni idea de inglés.

Gracias.



"Fernando Arroyo" escribió en el mensaje
news:
Por ejemplo, para crear un menú llamado MiMenú, con tan sólo un elemento, y
que estuviera disponible tan sólo cuando se abriera el libro donde esté
situado el código, tendrías que:

1.- Poner el siguiente código en el módulo del libro (en ThisWorkbook):

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EliminarMenúMiMenú
End Sub

Private Sub Workbook_Open()
Dim MenúAyuda As CommandBarControl
Dim MenúNuevo As CommandBarPopup
Dim ElementoDeMenú As CommandBarButton

'Eliminar el menú "MiMenú", si existe
Call EliminarMenúMiMenú

'Localizar el menú Ayuda
Set MenúAyuda = Application.CommandBars(1).FindControl(ID:0010)

If MenúAyuda Is Nothing Then
'Añadir el nuevo menú al final
Set MenúNuevo = CommandBars(1).Controls.Add(Type:=msoControlPopup,
temporary:=True)
Else
'Añadir el nuevo menú antes de Ayuda
Set MenúNuevo Application.CommandBars(1).Controls.Add(Type:=msoControlPopup,
before:=MenúAyuda.Index, temporary:=True)
End If

'Añadir un título
MenúNuevo.Caption = "&MiMenú"

'Pimer elemento del menú
Set ElementoDeMenú = MenúNuevo.Controls.Add(Type:=msoControlButton)
ElementoDeMenú.Caption = "Lo que hace"
ElementoDeMenú.OnAction = "Macro que lo hace"
ElementoDeMenú.BeginGroup = True

Set MenúAyuda = Nothing
Set MenúNuevo = Nothing
Set ElementoDeMenú = Nothing
End Sub

2.- Poner lo siguiente en un módulo creado por ti:

Public Sub EliminarMenúMiMenú()
On Error Resume Next
CommandBars(1).Controls("MiMenú").Delete
On Error Goto 0
End Sub


Tendrías que sustituir "MiMenú" por el título del menú, "Lo que hace" por lo
que quieres que aparezca en el elemento del menú, y "Macro que lo hace" por
el nombre del sub que debe ejecutarse al seleccionar la opción.

Hay un artículo bastante completo en la KB de Microsoft sobre el tema (si
bien está en ingles, me temo):

http://support.microsoft.com/defaul...duct=xlw#6

Un saludo.


Fernando Arroyo
MS MVP - Excel
www.excelesp.com


"Angel O" escribió en el mensaje
news:%
Y que este accisible solo en el fichero en cuestión.

Gracias.

Àngel O.


"Angel O" escribió en el mensaje
news:
> No, esto lo que hace es agragar botones standars del excel, yo lo que
quiero
> es definit un menu directamente en la barra (no se como se llama),
Archivo,
> Edicion, ..., Ayuda, Aqui quiero mi menu. y al pinchar se me despliegue


un
> "desplegable" con mis submenus.
>
>
Respuesta Responder a este mensaje
#7 Fernando Arroyo
15/06/2005 - 09:32 | Informe spam
"Angel O" escribió en el mensaje news:
Fernando, perdona, y para crear un submenu dentro del primer menú?. Lo
siento pero no tengo ni idea de inglés.

Gracias.




Tendrías que sustituir el código que iba en el módulo del libro (en ThisWorkbook) por este otro:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EliminarMenúMiMenú
End Sub

Private Sub Workbook_Open()
Dim MenúAyuda As CommandBarControl
Dim MenúNivel1 As CommandBarPopup
Dim MenúNivel2 As CommandBarPopup
Dim MenúNivel3 As CommandBarButton

'Eliminar el menú "MiMenú", si existe
Call EliminarMenúMiMenú

'Localizar el menú Ayuda
Set MenúAyuda = Application.CommandBars(1).FindControl(ID:0010)

If MenúAyuda Is Nothing Then
'Añadir el nuevo menú al final
Set MenúNivel1 = CommandBars(1).Controls.Add(Type:=msoControlPopup, temporary:=True)
Else
'Añadir el nuevo menú antes de Ayuda
Set MenúNivel1 = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, before:=MenúAyuda.Index, temporary:=True)
End If

'Añadir un título
MenúNivel1.Caption = "&MiMenú"

'Siguiente nivel de menú (2)
Set MenúNivel2 = MenúNivel1.Controls.Add(Type:=msoControlPopup)
MenúNivel2.Caption = "Nivel 2"

'Siguiente nivel de menú (3)
Set MenúNivel3 = MenúNivel2.Controls.Add(Type:=msoControlButton)
MenúNivel3.Caption = "Lo que hace"
MenúNivel3.OnAction = "Macro que lo hace"
MenúNivel3.BeginGroup = True

Set MenúAyuda = Nothing
Set MenúNivel1 = Nothing
Set MenúNivel2 = Nothing
Set MenúNivel3 = Nothing
End Sub


Algo que se me olvidó comentar en mi mensaje anterior, a propósito de la instrucción

MenúNivel3.BeginGroup = True

es que dicha instrucción no es necesaria tal como está el código (porque se trata del primer elemento del menú), pero la puse como ejemplo. Si se utiliza con una opción de menú que no es la primera , lo que hace es poner una línea encima de dicha opción para separarla de las que la preceden.
Un saludo.



Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#8 KL
15/06/2005 - 09:49 | Informe spam
Hola Angel O,

Esto esta 'casi' en castellano :) http://support.microsoft.com/kb/830502/es

Saludos,
KL


"Angel O" wrote in message
news:
Fernando, perdona, y para crear un submenu dentro del primer menú?. Lo
siento pero no tengo ni idea de inglés.

Gracias.



"Fernando Arroyo" escribió en el mensaje
news:
Por ejemplo, para crear un menú llamado MiMenú, con tan sólo un elemento,
y
que estuviera disponible tan sólo cuando se abriera el libro donde esté
situado el código, tendrías que:

1.- Poner el siguiente código en el módulo del libro (en ThisWorkbook):

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call EliminarMenúMiMenú
End Sub

Private Sub Workbook_Open()
Dim MenúAyuda As CommandBarControl
Dim MenúNuevo As CommandBarPopup
Dim ElementoDeMenú As CommandBarButton

'Eliminar el menú "MiMenú", si existe
Call EliminarMenúMiMenú

'Localizar el menú Ayuda
Set MenúAyuda = Application.CommandBars(1).FindControl(ID:0010)

If MenúAyuda Is Nothing Then
'Añadir el nuevo menú al final
Set MenúNuevo = CommandBars(1).Controls.Add(Type:=msoControlPopup,
temporary:=True)
Else
'Añadir el nuevo menú antes de Ayuda
Set MenúNuevo > Application.CommandBars(1).Controls.Add(Type:=msoControlPopup,
before:=MenúAyuda.Index, temporary:=True)
End If

'Añadir un título
MenúNuevo.Caption = "&MiMenú"

'Pimer elemento del menú
Set ElementoDeMenú = MenúNuevo.Controls.Add(Type:=msoControlButton)
ElementoDeMenú.Caption = "Lo que hace"
ElementoDeMenú.OnAction = "Macro que lo hace"
ElementoDeMenú.BeginGroup = True

Set MenúAyuda = Nothing
Set MenúNuevo = Nothing
Set ElementoDeMenú = Nothing
End Sub

2.- Poner lo siguiente en un módulo creado por ti:

Public Sub EliminarMenúMiMenú()
On Error Resume Next
CommandBars(1).Controls("MiMenú").Delete
On Error Goto 0
End Sub


Tendrías que sustituir "MiMenú" por el título del menú, "Lo que hace" por
lo
que quieres que aparezca en el elemento del menú, y "Macro que lo hace"
por
el nombre del sub que debe ejecutarse al seleccionar la opción.

Hay un artículo bastante completo en la KB de Microsoft sobre el tema (si
bien está en ingles, me temo):

http://support.microsoft.com/defaul...duct=xlw#6

Un saludo.


Fernando Arroyo
MS MVP - Excel
www.excelesp.com


"Angel O" escribió en el mensaje
news:%
Y que este accisible solo en el fichero en cuestión.

Gracias.

Àngel O.


"Angel O" escribió en el mensaje
news:
> No, esto lo que hace es agragar botones standars del excel, yo lo que
quiero
> es definit un menu directamente en la barra (no se como se llama),
Archivo,
> Edicion, ..., Ayuda, Aqui quiero mi menu. y al pinchar se me despliegue


un
> "desplegable" con mis submenus.
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida