Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
132to136
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
132to136
132to136
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neue Symbolleiste per VBA

Neue Symbolleiste per VBA
08.07.2002 18:55:54
Martin
Hallo,

bin noch Anfänger auf dem Gebiet. Möchte per VBA eine neue Symbolleiste entwerfen, auf der mehrer Befehlsflächen sind.
Die Symbolleiste soll "Monate" heißen und die Schaltflächen sollen "Jan", "Feb", "Mär", "Apr" usw. heißen. Auf den Schaltflächen soll nur der Text angezeigt werden. Habe es schon probiert mittels Aufzeichnung eines Makros. Die Symbolleiste wird zwar erstellt, aber die Schaltflächen werden nur so angezeigt wie ich sie erstellt habe. z.B. "benutzerdefinierte Schaltfläche". Was mache ich verkehrt?

Sub Monate()

Application.CommandBars.Add(Name:="Monate").Visible = True
Application.CommandBars("Monate").Controls.Add Type:=msoControlButton, ID:= _
2950, Before:=1
End Sub


Im Vorraus besten Dank für Eure Hilfe

Martin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Neue Symbolleiste per VBA
08.07.2002 19:26:23
Silvio
+++++++++++++++++++++++++++++
'DIESEN CODE in den VB-Editor
+++++++++++++++++++++++++++++
Private Sub Workbook_Open()
'eigene Symbolleiste anlegen für die Monate
Dim symb As CommandBar
Dim i As Integer
On Error Resume Next

' Erstellen der leeren Symbolleiste für die Monatsverwaltung
Set symb = Application.CommandBars.Add("Monate", _
Position:=msoBarTop, Temporary:=True)
With symb
.Left = 0
.Visible = True
End With

Set Symbol = Application.CommandBars("Monate").Controls _
.Add(Type:=msoControlButton)
With Symbol
.Style = msoButtonIconAndCaption
.FaceId = 2634
.Caption = "Januar"
.TooltipText = "Bla Bla Bla"
.BeginGroup = True
'führe das Makro mit dem Namen Januar() aus...
.OnAction = "Januar"
End With

Set Symbol = Application.CommandBars("Monate").Controls _
.Add(Type:=msoControlButton)
With Symbol
.Style = msoButtonIconAndCaption
.FaceId = 1016
.Caption = "Februar"
.TooltipText = "bla bla bla"
.BeginGroup = True
'führe das Makro mit dem Namen Februar() aus...
.OnAction = "Februar"
End With


Set Symbol = Application.CommandBars("Monate").Controls _
.Add(Type:=msoControlButton)
With Symbol
.Style = msoButtonIconAndCaption
.FaceId = 462
.Caption = "März"
.TooltipText = "Bla bla Bla"
'führe das Makro mit dem Namen Maerz() aus...
.OnAction = "Maerz"
End With

End Sub


Private Sub Workbook_Activate()
'Symbolleiste bim Aktivieren der Mappe einblenden
On Error Resume Next
Application.CommandBars("Monate").Enabled = True
End Sub


Private Sub Workbook_Deactivate()
'Symbolleiste beim Wechseln auf anderes Blatt ausblenden
On Error Resume Next
Application.CommandBars("Monate").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Beim Schließen der Datei die Symbolleiste wieder entfernen
On Error Resume Next
Application.CommandBars("Monate").Delete
End Sub


++++++++++++++++++++++++++++++
Diesen Code in ein Modul
++++++++++++++++++++++++++++++
'PS: Hier wird definiert was passiert wenn
'auf die Schaltflächen z.B. Maerz gedrückt wird
'Siehe auch "Diese Arbeitsmappe-Code unter ".OnAction ="

Sub Januar()
MsgBox "Alles klar Januar!"
End Sub

Sub Februar()
MsgBox "Alles klar Februar!"
End Sub

Sub Maerz()
MsgBox "Alles klar!"
End Sub

Ich hoffe das hilft weiter
Bye Silvio

Anzeige
Re: Neue Symbolleiste per VBA
08.07.2002 19:32:50
Martin
Habe es probiert, aber irgentwie tut sich gar nix. Vielleicht mach ich auch was falsch. Habe mir dein Beispiel kopiert und den VBA Editor gestartet und das Beispiel reinkopiert. Aber es passiert gar nichts?
Re: Neue Symbolleiste per VBA
08.07.2002 19:34:25
Silvio
Hast du die Datei gespeichert und geschlossen ...
Anschließend neu starten! müßte funktionieren

Re: Neue Symbolleiste per VBA
08.07.2002 19:47:08
Martin
Super hat funktioniert, aber warum muß ich jedesmal den VBA Editor neu starten, damit die Symbolleiste angezeigt wird?
Kann ich den Schaltflächen auch einen Befehl zuweisen, der dann immer gespeichert bleibt? Soll nämlich, wenn ich auf Januar drücke, folgendes öffnen. "C:\Dokumente und Einstellungen\g\Eigene Dateien\Excel\Bericht 2003\Januar.xls".
Anzeige
Re: Neue Symbolleiste per VBA
08.07.2002 19:52:50
Silvio
Die Symbolleiste öffnet sich jedesmal autom. beim starten der Mappe... Also nicht erst beim öffnen des VB-Editors!!!!

Du hast den Code nicht richtig kopiert:
Am unteren Ende steht :
++++++++++++++++++++++++++++++++++
Diesen Code in ein Modul kopieren:
++++++++++++++++++++++++++++++++++
Also ließ dir den Code (besonderes das letzte Stück) nochmal genau durch.... Starte dann den VB-Editor und gehe auf Einfügen - Modul... in das öffnente Fenster dann den unteren Code einfügen...

Re: Neue Symbolleiste per VBA
08.07.2002 19:55:20
nochwas
Der gesamte andere Code (also der obere Abschnitt)
kommt in den VB-Editor unter "diese Arbeitsmappe" rein!
Anzeige
Re: Neue Symbolleiste per VBA
08.07.2002 19:57:49
Martin
Vielen Dank Silvio, du hast mir echt super geholfen. Riesen Kompliment. Hatte wirklich was vergessen einzufügen. Aber jetzt funktioniert es super. Echt toll, wie einem Anfänger hier geholfen wird. Weiter so.
Re: Neue Symbolleiste per VBA
08.07.2002 20:11:38
Silvio
Um jetzt die Befehle anzupassen.
Gehe in den VB Editor und klicke das "Modul" doppelt an:
Suche das Makro Januar() und kopiere dafür diesen Code hier


Re: Neue Symbolleiste per VBA
09.07.2002 12:22:09
Martin
Hallo Silvio,

das habe ich schon geschafft. Ein kleines bischen kenn ich mich schon aus. Trotzdem nochmal vielen vielen Dank, hast mir sehr geholfen.

Gruß

Martin

Re: Neue Symbolleiste per VBA
11.07.2002 11:44:25
Peter
Hallo Silvio,
läßt sich das auch auf Excel97 übertragen ?
Ich habe die Makros entsprechend Vorgabe kopiert in ein neues Modul bzw. in 'Diese Arbeitsmappe'. Nach Speichern, schließen und neu öffnen waren die Makros in 'Diese Arbeitsmappe' weg. Was habe ich falsch gemacht? bzw kannst Du mir diese Mustermappe bitte als Anhang zumailen ?
Peter


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige