Newsgroup: it.comp.lang.visual-basic
Titolo: VBA toolbar

Ciao a tutti , ho creato una macro in Excel che mi crea una toolbar che
contiene un combobox ; una barra simile a quella dei font.
Questa combo box viene riempita leggendo dei dati da una colonna di un file
modello.
Vorrei sapere come fare affinche' questa barra si attivi all'ingresso di
excel e non solamente attivando il file su cui l'ho programmata !
Sono sicuro che e' una banalità, ma mi sono incasinato !
Questo è il codice :
Public Const mc_strBarName   As String = "Pippo"
Private Const mc_strComboProc As String = "Combo_OnAction"
Private m_strItems() As String
Public Sub Combo_OnAction()
Dim ind, indRiga, indColonna As Integer
Dim lista(6) As Variant
indRiga = 2
indColonna = 1
Workbooks.Open ("c:\modelli\modello1.xls")
With CommandBars(mc_strBarName).Controls(1)
While (Cells(indRiga, indColonna) <> .Text)
  indRiga = indRiga + 1
Wend
For ind = 1 To 6
lista(ind) = Cells(indRiga, ind + 1)
Next ind
Workbooks("MODELLO1.XLS").Close (False)
Workbooks(1).Activate
Cells(ActiveCell.Row, ActiveCell.Column) = .Text
For ind = 1 To 5
Cells(ActiveCell.Row, ActiveCell.Column + ind) = lista(ind)
Next ind
End With
End Sub
Public Function EsisteBarra() As Boolean
On Error GoTo fine
If CommandBars("Bizeta").Enabled Then
EsisteBarra = True
Else
fine: EsisteBarra = False
End If
End Function
Public Sub RiempiCombo()
Dim lngIndex As Long
Dim ind, indRiga, indColonna As Integer
indRiga = 2
indColonna = 1
If Not (EsisteBarra) Then
With CommandBars
    With .Add( _
        Name:=mc_strBarName _
      , Position:=msoBarTop _
      , MenuBar:=False _
      , Temporary:=True)
      With .Controls.Add(Type:=msoControlDropdown)
        .Width = 300
        'Apre il file DATI
        Workbooks.Open ("c:\modelli\modello1.xls")
        'Selezione l'area DATI
        Range("A2:F1000").Select
        'Ordina l'area DATI
        Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,
Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        'Riempe combo descrizione
        While (Cells(indRiga, indColonna) <> "")
            .AddItem CStr(Cells(indRiga, indColonna))
            indRiga = indRiga + 1
        Wend
        Workbooks("MODELLO1.XLS").Close (False)
       .OnAction = mc_strComboProc
      End With
      .Visible = False
    End With
  End With
Else
CommandBars(mc_strBarName).Visible = False
With CommandBars(mc_strBarName).Controls(1)
        .Width = 300
        'Apre il file DATI
        Workbooks.Open ("c:\modelli\modello1.xls")
        'Selezione l'area DATI
        Range("A2:F1000").Select
        'Ordina l'area DATI
        Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,
Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        'Riempe combo descrizione
        While (Cells(indRiga, indColonna) <> "")
            .AddItem CStr(Cells(indRiga, indColonna))
            indRiga = indRiga + 1
        Wend
        Workbooks("MODELLO1.XLS").Close (False)
       .OnAction = mc_strComboProc
      End With
End If
End Sub
Grazie per l'aiuto ! ::-)

> Matteo Masina:

  Consulta la guida a proposito dell'argomento "Temporary".

--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

Grazie mille ! :-)
Matteo