Luis,
I still am not exactly certain what you are trying to do but the following code will create a custom menu for you and I would suggest, like Rob did, to put your macro within the Add-In, make it a different module within the add-in. The last bit of code starting with Private Sub Workbook_Open() should go in the This Workbook section of the VBE. I have to tried to include enough comments to follow where your own macro names should go. Hope this helps
Rich
Sub CreateMenu()
' This sub should be executed when the workbook is opened.
' NOTE: There is no error handling in this subroutine
Dim MenuSheet As Worksheet
Dim MenuObject As CommandBarPopup
Dim MenuItem As Object
Dim SubMenuItem As CommandBarButton
Dim Row As Integer
Dim MenuLevel, NextLevel, PositionOrMacro, Caption, Divider, FaceId
''''''''''''''''''''''''''''''''''''''''''''''''''''
' Location for menu data
Set MenuSheet = ThisWorkbook.Sheets("MenuSheet"

''''''''''''''''''''''''''''''''''''''''''''''''''''
' Make sure the menus aren't duplicated
Call DeleteMenu
' Initialize the row counter
Row = 2
' Add the menus, menu items and submenu items using
' data stored on MenuSheet
Do Until IsEmpty(MenuSheet.Cells(Row, 1))
With MenuSheet
MenuLevel = .Cells(Row, 1)
Caption = .Cells(Row, 2)
PositionOrMacro = .Cells(Row, 3)
Divider = .Cells(Row, 4)
FaceId = .Cells(Row, 5)
NextLevel = .Cells(Row + 1, 1)
End With
Select Case MenuLevel
Case 1 ' A Menu
' Add the top-level menu to the Worksheet CommandBar
MaxControlIndex = FindMaxControlIndex()
If PositionOrMacro > MaxControlIndex Then PositionOrMacro = MaxControlIndex
Set MenuObject = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, _
Before:=PositionOrMacro, _
Temporary:=True)
MenuObject.Caption = Caption
Case 2 ' A Menu Item
If NextLevel = 3 Then
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
Else
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlButton)
MenuItem.OnAction = PositionOrMacro
End If
MenuItem.Caption = Caption
If FaceId <> "" Then MenuItem.FaceId = FaceId
If Divider Then MenuItem.BeginGroup = True
Case 3 ' A SubMenu Item
Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubMenuItem.Caption = Caption
SubMenuItem.OnAction = PositionOrMacro
If FaceId <> "" Then SubMenuItem.FaceId = FaceId
If Divider Then SubMenuItem.BeginGroup = True
End Select
Row = Row + 1
Loop
End Sub
Sub DeleteMenu()
' This sub should be executed when the workbook is closed
' Deletes the Menus
Dim MenuSheet As Worksheet
Dim Row As Integer
Dim Caption As String
On Error Resume Next
Set MenuSheet = ThisWorkbook.Sheets("MenuSheet"

Row = 2
Do Until IsEmpty(MenuSheet.Cells(Row, 1))
If MenuSheet.Cells(Row, 1) = 1 Then
Caption = MenuSheet.Cells(Row, 2)
Application.CommandBars(1).Controls(Caption).Delete
End If
Row = Row + 1
Loop
On Error GoTo 0
End Sub
Private Function FindMaxControlIndex() As Integer
FindMaxControlIndex = 0
For Each Control In Application.CommandBars(1).Controls
If Control.Index > FindMaxControlIndex Then FindMaxControlIndex = Control.Index
Next Control
FindMaxControlIndex = FindMaxControlIndex + 1
End Function
Public Sub CreateMenuSheet()
Sheets.Add Type:="Worksheet"
With ActiveSheet
.Move after:=Worksheets(Worksheets.Count)
.Name = "MenuSheet"
.Visible = False
End With
Dim MS As Range
Set MS = Worksheets("MenuSheet"

.Range("A1"
' Specify whether Menu Position: 1 - Name, 2 - Within Menu
MS.Offset(1, 0) = "1"
MS.Offset(2, 0) = "2"
MS.Offset(3, 0) = "2"
' Specifies actual Name of Menu
MS.Offset(1, 1) = "&Utlities"
'Specifies Name within Menu
MS.Offset(2, 1) = "Im&port Data"
MS.Offset(3, 1) = "Se&lect Sheet"
'Specifies Location of Menu on ToolBar
MS.Offset(1, 2) = "11"
'Specifies Name of macro to call when menu item is selected
MS.Offset(2, 2) = "frmFilter"
MS.Offset(3, 2) = "ShowfrmChange"
'Specifies whether a divider is wanted
MS.Offset(2, 3) = ""
MS.Offset(3, 3) = ""
'Specifies FaceId of Menu item
MS.Offset(2, 4) = "266"
MS.Offset(3, 4) = "48"
End Sub
Private Sub Workbook_Open()
On Error Resume Next
Call CreateMenuSheet
Call DeleteMenu
Call CreateMenu
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
On Error Resume Next
Call DeleteMenu
Call CreateMenu
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)
On Error Resume Next
Call DeleteMenu
End Sub