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

VBA-Code für Menuebar-Erweiterung

VBA-Code für Menuebar-Erweiterung
04.03.2005 15:56:11
Rudolf
Hallo VBA-Profis,
ich würde gern die Excel Menueleiste um einen eigenen Menueeintrag mit Buttons und Untermenues erweitern. Anhand der von mir im Internet zusammengesuchten Code-Schnipsel kriege ich einen zusätzlichen Menueeintrag mit Buttons auch hin. Da ich aber keine VBA-Profi bin, will es mir einfach nicht gelingen, ein Untermenue per VBA zu erzeugen. Der Makrorecorder hilft mir auch nicht weiter. Wäre für Eure Hilfe sehr dankbar,
Rudolf.
Hier mein Code mit dem Problem zwischen den ?

Private Sub Workbook_Open()
Dim cbMenu As CommandBar
Dim cbSpecialMenu As CommandBarPopup
Dim cbCommand As CommandBarControl
'Zuweisen der Objektvariablen
Set cbMenu = Application.CommandBars("Worksheet Menu Bar")
Set cbSpecialMenu = cbMenu.Controls.Add(Type:=msoControlPopup)
'Titelbeschriftung der Menubar
cbSpecialMenu.Caption = "Spezial"
'Einen Button hinzufügen und beschriften
Set cbCommand = cbSpecialMenu.Controls.Add(Type:=msoControlButton)
cbCommand.Caption = "Leerzeichen entfernen"
cbCommand.OnAction = "leerzeichen_entfernen"
'Ein Untermenue hinzufügen und beschriften
Set cbCommand = cbSpecialMenu.Controls.Add(Type:=msoControlButton)
cbCommand.Caption = "Rohrnetzliste"
'Dem Untermenue einen Button hinzufügen und beschriften
Set cbCommand = cbSpecialMenu.Controls.Add(Type:=msoControlButton)
cbCommand.Caption = "Rohrnetzliste importieren"
cbCommand.OnAction = "Import_Rohrnetzdaten"
'Dem Untermenue noch einen Button hinzufügen und diesen gleich beschriften
Set cbCommand = cbSpecialMenu.Controls.Add(Type:=msoControlButton)
cbCommand.Caption = "Rohrnetzliste speichern"
cbCommand.OnAction = "Save_Rohrnetzdaten"
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code für Menuebar-Erweiterung
04.03.2005 17:06:28
Koenig
Hallo Rudolf
hier ein Schnippsel aus einem meiner Menues
evtl. kannst Du auch noch das Löschen gebrauchen.
Gruss Wilhelm
Sub NeuesMenueEinfuegen()
Dim i As Integer
Dim i_Hilfe As Integer
Dim MenueNeu As CommandBarControl
Dim mb As CommandBarControl
Dim um As CommandBarPopup
Dim mb2 As CommandBarControl
i = Application.CommandBars(1).Controls.Count - 1
i_Hilfe = Application.CommandBars(1).Controls(i).Index
Set MenueNeu = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, _
before:=i_Hilfe, temporary:=True)
MenueNeu.Caption = "&Kno's Extratools"
'Befehl Kopfzeilen
Set mb = MenueNeu.Controls.Add _
(Type:=msoControlButton)
With mb
.Caption = "&Kopfzeilen formatieren"
.Style = msoButtonCaption
.OnAction = "Form10Zeigen"
'.BeginGroup = True
End With
'Menue CIS Auswertung
Set um = MenueNeu.Controls.Add _
(Type:=msoControlPopup)
With um
.Caption = "&CIS Auswertungen"
.BeginGroup = True
End With
'Unterbefehl CIS1
Set mb2 = um.Controls.Add _
(Type:=msoControlButton)
With mb2
.Caption = "CIS&1 Sortieren"
.Style = msoButtonCaption
.OnAction = "CIS_Auswertung1"
End With
'Unterbefehl CIS2
Set mb2 = um.Controls.Add _
(Type:=msoControlButton)
With mb2
.Caption = "CIS&2 Umwandeln"
.Style = msoButtonCaption
.OnAction = "CIS_Auswertung2"
End With
End Sub

Private Sub MenueLoeschen()
On Error Resume Next
With Application.CommandBars(1)
.Controls("&Kno's Extratools").Delete
.Controls("&Kopfzeilen").Delete
.Controls("Kn&o's Funktionen").Delete
End With
End Sub

Anzeige
AW: VBA-Code für Menuebar-Erweiterung
04.03.2005 17:09:45
Sonnenpeter
Hallo Rudolf,
vieleicht hilft Dir das weiter

Sub NeuesMenüEinfügen()
Dim i As Integer
Dim i_Hilfe As Integer
Dim e As Integer
Dim MenüNeu As CommandBarControl
Dim Mb As CommandBarControl
Dim unterm As CommandBarPopup
For e = 1 To Application.CommandBars(1).Controls.Count
'If Application.CommandBars(1).Controls(e).Caption = "BlattMakros" Then Exit Sub
Next e
i = Application.CommandBars(1).Controls.Count
i_Hilfe = Application.CommandBars(1).Controls(i).Index
Set MenüNeu = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, _
Before:=i_Hilfe, Temporary:=True)
MenüNeu.Caption = "Sonnenpeter  privat"
'1 Menuepunkt
Set Mb = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With Mb
.Caption = "Tabellenblatt _&schützen"
.Style = msoButtonIconAndCaption
.OnAction = "BlattschutzEin"
.FaceId = 225
.BeginGroup = True
End With
'2 Menuepunkt
Set Mb = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With Mb
.Caption = "Tabellenschutz ausschalten"
.Style = msoButtonIconAndCaption
.FaceId = 277
.OnAction = "BlattschutzAus"
.BeginGroup = True
End With
'3 Menuepunkt
Set Mb = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With Mb
.Caption = "Alle Tabellenblätter zeigen"
.Style = msoButtonIconAndCaption
.FaceId = 599
.OnAction = "AlleBlätterSichtbar"
.BeginGroup = True
End With
'4 Menuepunkt
Set Mb = MenüNeu.Controls.Add _
(Type:=msoControlButton)
With Mb
.Caption = "Tabellenblatt ausblenden"
.Style = msoButtonIconAndCaption
.FaceId = 600
.OnAction = "BlattVerstecken"
.BeginGroup = True
End With
'Untermenuepunkt1
Set Mb = MenüNeu.Controls.Add _
(Type:=msoControlPopup)
With Mb
.Caption = "Alle Tabellenblätter"
.BeginGroup = True
End With
With Mb.Controls.Add(Type:=msoControlButton)
.Caption = "Alle Tabellen schützen"
.FaceId = 352
.OnAction = "BlattschutzEINAlle"
End With
With Mb.Controls.Add(Type:=msoControlButton)
.Caption = "Alle Tabellen entsperren"
.FaceId = 342
.OnAction = "BlattschutzAUSAlle"
End With
End Sub


Sub MenüLöschen()
On Error Resume Next
With Application.CommandBars(1)
.Controls("Sonnenpeter  privat").Delete
End With
End Sub

Gruß aua Mainz Sonnenpeter
Anzeige
AW: VBA-Code für Menuebar-Erweiterung
04.03.2005 18:50:10
Rudolf
Hallo Wilhelm, hallo Sonnenpeter,
vielen Dank für Eure Unterstützung. Das war mehr als ich zu hoffen wagte. Ich denke damit komme ich super weiter.
Schönes Wochenende,
Rudolf.
Nachtrag .FaceId = 277......
04.03.2005 19:10:57
Sonnenpeter
Hallo Rudolf,
bei http://www.xlt.de findest Du noch die Datei Icon-Ex © by Volker Holling, damit kannst Du Dir die FaceId Nummern mit dem entsprechenden Icon als Bild auflisten.
Gruß aus Mainz
Sonnenpeter
Nachtrag .FaceId = 277......
05.03.2005 12:10:21
Rudolf
Hallo Sonnenpeter,
nochmals vielen Dank. Deinen Codeschnipsel habe ich angepasst und er macht nun genau das, was ich wollte und das sieht dank "FaceId" auch noch schöner aus.
Gruß, Rudolf.
------
Objektorientierte Programmierung liegt mir scheinbar nicht so, aber dieses Beispiel habe ich jetzt verstanden.
Wisst Ihr noch, damals --- FORTRAN IV, PL/1, Cobol ? ;-)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige