Office - Word, Excel und Co. 9.720 Themen, 41.109 Beiträge

Excel - eigenes Menü verändern

Rheinlaender / 6 Antworten / Flachansicht Nickles

Tach zusammen!

Ich hab folgendes Problemchen: in einer Vorgängerversion von Excel (jetzige ist Excel 2002) hab' ich mal einen eigenen Menüpunkt (mit Untermenüs) in der Menüleiste erstellt. Jetzt würde ich dieses Menü gerne verändern/Punkte löschen/anders aufteilen...
Das ist im Grunde auch kein Problem, funktioniert wunderbar - nur dass sich nach dem Speichern und erneuten Öffnen der Datei dieses Menü wieder im Ursprungszustand präsentiert.

Kann mir jemand sagen, wie ich eine dauerhafte Änderung erreiche?

Vielen Dank im Voraus.

Gruß
Rheinlaender

bei Antwort benachrichtigen
mumpel1 Rheinlaender „Excel - eigenes Menü verändern“
Optionen

Hallo!

1. Lösche mal die Excel10.xlb

2. Erstelle das Menü besser per VBA (z.B. über Add-In).
Folgenden Beispielcode in "DieseArbeitsmappe" einer leeren Arbeitsmappe. Dann anpassen. Anschließend die Datei als Add-In speichern und über den Add-In-Manager einbinden. Funktioniertn aber nicht mehr in Excel 2007, da es dort keine Menüs mehr gibt.

Private Sub Workbook_Open()
On Error Resume Next
Dim MenüNeu As CommandBarPopup
Dim MB As CommandBarControl
Dim MC As CommandBarPopup
Dim MA As CommandBarControl
Dim myBar As Object
Set myBar = CommandBars(1) 'ermittelt die Indexnummer
Set ctrl1 = myBar.Controls("?") 'des Menüs Datei
'Erstellt das temporäre Menü "ArbeitsZeit" mit Untermenüs
Set MenüNeu = Application.CommandBars(1).Controls.Add(Before:=ctrl1.Index, _
Type:=msoControlPopup) 'Menütitel
With MenüNeu
.Caption = "Arbeits&Zeit"
.TooltipText = "Hiermit können Sie die Makros dieser " & _
"Arbeitsmappe über die Tastatur ausführen"
.BeginGroup = True
End With
On Error Resume Next
Set MC = MenüNeu.Controls.Add(Type:=msoControlPopup)
With MC
.Caption = "&Monats-Auswahl"
.BeginGroup = True
End With
Set MB = MC.Controls.Add(Type:=msoControlButton)
With MB
.Caption = "&Januar"
.Style = msoButtonCaption
.OnAction = "JanEin"
End With
Set MB = MC.Controls.Add(Type:=msoControlButton)
With MB
.Caption = "&Februar"
.Style = msoButtonCaption
.OnAction = "FebEin"
End With
Set MA = MenüNeu.Controls.Add(Type:=msoControlButton)
With MA
.Caption = "Antr&äge aufrufen"
.Style = msoButtonIconAndCaption
.FaceId = 42
.OnAction = "Aufruf_show"
.BeginGroup = True
End With
Set MA = MenüNeu.Controls.Add(Type:=msoControlButton)
With MA
.Caption = "&Persönliche Daten eingeben"
.Style = msoButtonIconAndCaption
.FaceId = 1665
.OnAction = "PersönlicheDaten"
.BeginGroup = True
End With
Set MA = MenüNeu.Controls.Add(Type:=msoControlButton)
With MA
.Caption = "Arbeitszeiten &verwalten"
.Style = msoButtonIconAndCaption
.FaceId = 125
.OnAction = "Arbeitszeiten"
End With
Set MA = MenüNeu.Controls.Add(Type:=msoControlButton)
With MA
.Caption = "Zuschl&äge berechnen"
.Style = msoButtonIconAndCaption
.FaceId = 395
.OnAction = "Kosten"
End With

End Sub

Private Sub Workbook_BeforeClose(cancel As Boolean)
On Error Resume Next
With Application.CommandBars(1)
.Controls("ArbeitsZeit").Delete
End With
End Sub

Gruß, René

bei Antwort benachrichtigen