Salve a tutti
Ho necessità di personalizzare i menù di excel. Vorrei creare due pulsanti che a seconda del pulsante che seleziono mi facciano comparire un menù personalizzato.
Ho usato il seguente codice:
codice:
Sub CreaMenuSint(PBarra, VettMenu, VettVettVoci, VettVettMacro)
  Dim i As Integer, j As Integer
  Set Bar = CommandBars.Add(Name:=PBarra, Position:=msoBarTop, MenuBar:=True, temporary:=True)
    Bar.Visible = True
    For i = 0 To UBound(VettMenu)
      Bar.Controls.Add Type:=msoControlPopup
      With Bar.Controls(i + 1)
        .Caption = VettMenu(i)
      End With
    Next
  For i = 0 To UBound(VettVettVoci)
  With CommandBars(PBarra).Controls(i + 1)
    For j = 0 To UBound(VettVettVoci(i))
      With .Controls
        .Add
        .Item(j + 1).Caption = VettVettVoci(i)(j)
        .Item(j + 1).OnAction = VettVettMacro(i)(j)
      End With
    Next
  End With
  Next
End Sub

Sub provaCreaMenuSint()
  If SwMenu Then
    MsgBox "La barra c'è già", vbExclamation
    Exit Sub
  End If
  Pbar = "Menu"
  Vmenu = Array("Contatti Vista Totali", "Vendite Viste Totali", _
          "Contatti Vista", "Vendite Vista ", "Quinto menu")
  VVVoci = Array(Array("Direzione Territoriale", "Area", "Distretto", "Agenzia", "Torna Cruscotto"), _
     Array("Direzione Territoriale", "Area", "Distretto", "Agenzia", "Cruscotto"), _
     Array("Direzione Territoriale", "Area", "Distretto", "Agenzia", "Cruscotto"), _
     Array("Voce 1", "Voce 2"), _
     Array("Voce 1", "Voce 2", "Voce 3"))
  VVMacro = Array(Array("Miamacro1_1", "Miamacro1_2", "Miamacro1_3", "Miamacro1_4", "Miamacro1_5"), _
     Array("Miamacro2_1", "Miamacro2_2", "Miamacro2_3", "Miamacro2_4", "Miamacro2_5"), _
     Array("Miamacro3_1", "Miamacro3_2", "Miamacro3_3", "Miamacro3_4", "Miamacro3_5"), _
     Array("Miamacro4_1", "Miamacro4_2"), _
     Array("Miamacro5_1", "Miamacro5_2", "Miamacro5_3"))

  CreaMenuSint Pbar, Vmenu, VVVoci, VVMacro
  SwMenu = True
End Sub
Il problema è che facendo la stessa cosa su un'altro modulo e cambiando tutti i nomi
delle varibili vado in conflitto.
Grazie
Lelle