Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
312to316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
312to316
312to316
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ComboBox in neuer Symbolleiste

ComboBox in neuer Symbolleiste
19.09.2003 10:26:09
Alex
Hallo zusammen,
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

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox in neuer Symbolleiste
19.09.2003 10:32:04
GerdW
Dein Code ist fehleranfällig aber so sollte zumindest die Auswahl
klappen:


Sub Schaltflaeche2Befehl()
Worksheets(Schaltflaeche2.Text).Activate
End Sub


Außerdem solltest du sicherstellen, dass die symbolleiste beim Mappenwechsel
nicht zur Verfügung steht, weil sie dort ja sinnlos ist.

Gerd
klappt leider noch nicht
19.09.2003 10:43:36
Alex
danke für deine Antwort, leider funktioniert der Befehl aber nicht. Fehler: Objekt erforderlich
AW: klappt leider noch nicht
19.09.2003 10:48:43
GerdW
Ja klar, die Variable Schaltflaeche2 ist ja in der anderen
Prozedur schon wieder nothing. Entweder deklarierst du
Schaltflaeche2 im Deklarationsteil(auf Modulebenen) oder du
sprichst das control über die Caption an.

Gerd
Anzeige
AW: klappt leider noch nicht
19.09.2003 11:03:01
Alex
Sorry, bin mir nicht ganz sicher, was du da meinst (bin VBA Anfänger).
Soll ich das Dim Schaltflaeche2 in mein Modul 9 kopieren??? Und Caption hab ich bisher noch nicht verwendet. Ich bin mir auch nicht sicher, ob das .onaction eigentlich bedeutet, das ich einen Mausklick ausführe....
AW: klappt leider noch nicht
19.09.2003 11:13:00
GerdW
Du schreibst:

Sub Schaltflaeche2Befehl()
Worksheets(Schaltflaeche2.Value).Activate
End Sub


Das control heißt aber nicht Schaltflaeche2 sondern irgendwas mit date entry.
Diesen Namen(bzw. caption) musst du benutzen und ggf. noch den Namen
der Symbolleiste voranstellen.

Gerd
Anzeige
AW: klappt leider noch nicht
19.09.2003 11:31:58
Alex
Hallo Gerd und danke für die Geduld:
es klappt leider noch nicht. Ich sehe da auch folgendes Problem: bei der onaction Sache in "DieseArbeitsmappe" wird ja bei mir auf Modul 9 verwiesen. Allerding ist in Modul 9 ja noch keine Variable definiert (weder "Symbolleiste" noch "Schaltfläche"). D.h. Worksheets(Schaltflaeche2.Value).Activate kann nicht gefunden werden, oder?
Aber es funktioniert auch nicht, wenn ich die Makros aus Modul 9 in "Diese Arbeitsmappe" mit reinkopiere.
Hab echt schon alles probiert und langsam gehen mir die Ideen aus
Alex
AW: klappt leider noch nicht
19.09.2003 14:06:46
GerdW
Ich weiß gar nicht mehr, wie ichs noch erklären soll.
in der Prozedur, die in OnAction angegeben hast muss sinngemäß stehen:


Sub Schaltflaeche2Befehl()
Worksheets(Commandbars("DerNamedeinerCommandbar").controls("CaptiondesControls").text).Activate
End Sub


Gerd
Anzeige
Danke
19.09.2003 14:28:37
Alex
Danke, jetzt hauts hin. Mein Problem war, dass ich nich die Caption, sondern die variablenbezeichnung eingetragen hatte. Naja, zum Glück ist bald Wochenende
alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige