Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Symbolleiste mit ComboBox erstellen

Gruppe

ComboBox

Problem

Wie kann ich beim Öffnen einer Arbeitsmappe eine Symbolleiste mit einer CommandBarComboBox erstellen und mit den Werten aus Spalte A einer Tabelle bestücken? Es handelt sich bei Dateinamen. Bei Auswahl einer Datei in der ComboBox soll diese geöffnet werden.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.

ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Call CmdDelete
End Sub

Private Sub Workbook_Open()
   Dim wks As Worksheet
   Dim oBar As CommandBar
   Dim oCbo As CommandBarComboBox
   Dim iCounter As Integer
   Set wks = ThisWorkbook.Worksheets("Tabelle1")
   Call CmdDelete
   Set oBar = Application.CommandBars.Add("Dateien", msoBarTop)
   Set oCbo = oBar.Controls.Add(msoControlComboBox)
   iCounter = 1
   With oCbo
      Do Until IsEmpty(wks.Cells(iCounter, 1))
         .AddItem wks.Cells(iCounter, 1).Value
         iCounter = iCounter + 1
      Loop
      .OnAction = "DateienLaden"
      .ListIndex = 1
   End With
   oBar.Visible = True
End Sub

StandardModule: basMain

Sub DateienLaden()
   Dim wkb As Workbook
   Dim sFile
   With CommandBars("Dateien").Controls(1)
      sFile = .List(.ListIndex)
   End With
   On Error Resume Next
   Set wkb = Workbooks(sFile)
   If Err > 0 Or wkb Is Nothing Then
      Err.Clear
      On Error GoTo 0
      Workbooks.Open (sFile)
   End If
End Sub

Sub CmdDelete()
   On Error GoTo ERRORHANDLER
   Application.CommandBars("Dateien").Delete
ERRORHANDLER:
End Sub

    

Beiträge aus dem Excel-Forum zu den Themen Menue und ComboBox