Menüleisten
24.10.2005 09:28:29
MB
ich möchte beim Start einer Arbeitsmappe die vorhandenen Symbolleisten auslesen, in eine Tabelle speichern und anschließend alle ausblenden. Beim Verlassen der Datei sollen die zuvor ausgeblendeten Menüleisten wieder eingeblendet werden.
Der folgende Code funktioniert soweit, wenn ich diesen hinter zwei Buttons lege und mit "click" auslöse.
Jedoch kann ich mit meiner Menüleiste nicht die hinter den Befehlen liegenden Makros (zum Testen MsgBox) aufrufen --> Excel kann Makro Dateiname.xls!Makroname nicht finden! Die Makros stehen derzeit auch im Dokumentenmodul.
Warum werden die Makros nicht aufgerufen?
Warum funktioniert der code nicht in workbook_Open und workbook_BeforeClose?
Schon mal besten Dank!
LG Mike
Sub CommandButton1_Click()
Dim cb As CommandBar, cbc As CommandBarControl
Dim i As Integer
Dim name As String
For Each cb In Application.CommandBars
If CommandBars(cb.name).Visible = True Then
i = i + 1
Cells(i, 1) = i
Cells(i, 2) = cb.name
Cells(i, 3) = cb.NameLocal
End If
Next cb
'schauen, ob meine Menüleiste bereits vorhanden
For Each cb In CommandBars
If cb.name = "stiks" Then
cb.Delete
End If
Next cb
'Ausblenden der Menüleisten
i = 1
Cells(1, 1).Activate
name = Cells(1, 2)
Do While Not name = ""
Application.CommandBars(name).Enabled = False
i = i + 1
name = Cells(i, 2)
Loop
'Erstellen meiner Menüleiste
Set cb = Application.CommandBars.Add(name:="stiks", Position:=msoBarTop)
Set cbc = cb.Controls.Add(Type:=msoControlPopup)
cbc.Caption = "Verwaltung"
With cbc.Controls.Add
.Caption = "Datenimport"
.OnAction = "Datenimport"
End With
With cbc.Controls.Add
.Caption = "Ampel"
.OnAction = "Ampel"
End With
cb.Visible = True
End Sub
Private Sub CommandButton2_Click()
Dim cb As CommandBar, i As Integer
Dim name As String
For Each cb In CommandBars
If cb.name = "stiks" Then
cb.Delete
End If
Next cb
i = 1
name = Cells(1, 2)
Do While Not name = ""
Application.CommandBars(name).Enabled = True
i = i + 1
name = Cells(i, 2)
Loop
Cells.ClearContents
End Sub
Sub Datenimport()
MsgBox Date
End Sub
Sub Ampel()
MsgBox Time
End Sub