ComboBox in neuer Symbolleiste
19.09.2003 10:26:09
Alex
ich habe ein Problem in VBA, vielleicht kann mir jemand von euch helfen? Ich versuche eine Symbolleiste mit einer ComboBox zu erstellen und mit allen Blättern der aktiven Arbeitsmappe zu bestücken, die mit "data" beginnen. Beim anklicken soll das entsprechende Blatt angewählt werden. Außerdem hätte ich gerne, dass in der Symbolleiste der Titel "Zur Dateneingabe" erscheint. Dies kann ja auch Teil der comboboxitems sein, der einfach keinen weiteren Befehl aktiviert. Trotzdem weiß ich leider nicht genau, wie das geht. Hier mal mein Arbeitsansatz:
Symbolleiste und Combobox
Private Sub Workbook_Open()
Dim ws1 As Worksheet
Dim Symbolleiste As CommandBar
Dim Schaltflaeche1 As CommandBarButton
Dim Schaltflaeche2 As CommandBarComboBox
Call DeleteCmdBar
Set Symbolleiste = Application.CommandBars.Add(Name:="Navigation", _
temporary:=True)
With Symbolleiste
.Visible = True
.Top = 300
.Left = 300
End With
'Schaltfläche1: zurück zu Overview erstellen
Set Schaltflaeche1 = Symbolleiste.Controls.Add
With Schaltflaeche1
.FaceId = 41
.Caption = "Back to Overview"
.OnAction = "Schaltflaeche1Befehl"
End With
'Combobox 1 erstellen und laden
Set Schaltflaeche2 = Symbolleiste.Controls.Add(msoControlComboBox)
With Schaltflaeche2
.Caption = "Data Entry"
For Each ws1 In ActiveWorkbook.Worksheets
If Left(ws1.Name, 4) = "data" Then
.AddItem ws1.Name
End If
Next
.DropDownLines = 20
.DropDownWidth = 200
.OnAction = "Schaltflaeche2Befehl"
End With
End Sub
und die folgendes in Modul 9
Sub Schaltflaeche1Befehl()
Worksheets("Overview").Activate
End Sub
Sub Schaltflaeche2Befehl()
'hier wird ein Fehler angezeigt...
Worksheets(Schaltflaeche2.Value).Activate
End Sub
Sub DeleteCmdBar()
On Error Resume Next
Application.CommandBars("Navigation").Delete
On Error GoTo 0
End Sub
Vielen Dank für eure Hilfe
Alex