Complemento excel

Como puedo crear un menu para un complemento

2 Respuestas

Respuesta
1
Prueba lo siguiente:
Ver->Barra de Herramientas->Personalizar
Seleccionas la pestaña Comandos y Seleccionas el último de la lista "Categorías" que se llama "Nuevo Menu", luego te mantienes en Personalizar para añadirle botones o macros.
Según he podido ver, los complementos se encuentran repartidos por los menús (p.e. Solver en Herramientas o Administrador de Informes en Ver). Lo que puedes hacer es mover esos complementos al nuevo menú o asignarle botones con macros.
Espero haber entendido bien la pregunta.
Un saludo,
Javi
PD No olvides valorar la respuesta
Respuesta
1
No se si entendí tu pregunta, pero mira esta macro te ayuda a crear un menú:
==========
Sub menu()
Dim cControl As CommandBarControl
Dim pos As Integer
'Opcion general del menu
pos = CommandBars(1).Controls.Count + 1
Set cControl = CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, Before:=pos)
cControl.Caption = "Mi Menú"
cControl.Enabled = True
'---------------------------------------------------
'Opcion general de definir
Set cControl = CommandBars("Cuadro emergente personalizado 1").Controls.Add(Type:=msoControlPopup, Before:=1)
cControl.Caption = "Primera Opción"
'---------------------------------------------------
'Definir elaborado
Set cControl = CommandBars("Cuadro emergente personalizado 2").Controls.Add(Type:=msoControlButton, ID:=2949, Before:=1)
cControl.Caption = "Primera Opción Secundaria"
cControl.OnAction = "macroX"
cControl.Enabled = True
If booErr Then
cControl.Enabled = False
Else
cControl.Enabled = True
End If
End Sub
===========
Revisa si es esto lo que necesitas, sino, no dudes en preguntar otra vez.
Como le puedo hacer para que un menu personalizado solo me aparezca en el libro que realmente voy a ocupar y no cada vez que abro excel
Puedes tener un procedimiento que se ejecute cuando cierras el libro y elimine la barra que creaste al abrirlo, algo como esto:
==============
Sub eliminarMenu()
Dim I As Integer
Dim booEncontrado As Boolean
On Error Resume Next
For I = 1 To CommandBars(1).Controls.Count
If LCase$(CommandBars(1).Controls(I).Caption) = "Mi Menú" Then
Exit For
End If
Next I
If LCase$(CommandBars(1).Controls(I).Caption) = "Mi Menú" Then
CommandBars(1).Controls(I).Delete
End If
End Sub
==============

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas