Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

VBA6 Excel Makro Menüpunkt erstellen funktioniert nicht immer

Mic2004 / 2 Antworten / Flachansicht Nickles

Hallo zusammen,

ich habe mir in einer Excel-Datei ein Makro-Tool erstellt. Die Befehle dieses Tools habe ich in einem kleinen Menü in der Menüleiste zusammengefasst. Auf meinem PC funktioniert das auch aber wenn ich das Excel-Tool an einen Kollegen gebe, er es öffnet, dann wird der zusätzliche Menüpunkt nicht in der Menüleiste angezeigt.

Also Code habe ich folgendes verwendet:

Private Sub Workbook_Open()

'Ein Menü erstellen
Dim mymenu
Dim MenuName
MenuName = "EPMeasy"
Application.MenuBars(xlWorksheet).Menus.Add MenuName

Set mymenu = Application.MenuBars(xlWorksheet) _
.Menus(MenuName).MenuItems

With mymenu
.Add "Konfiguration öffnen..."
.Add "Konfiguration speichern unter..."
.Add ... ... ... ... ... ... ... ...
End With

'Menü mit Makros verknüpfen
Dim strCode As String
Dim cbc As Object

Set cbc = Application.MenuBars(xlWorksheet).Menus(MenuName).MenuItems("Konfiguration öffnen...")
cbc.OnAction = "Inhalt_Laden"

Set cbc = Application.MenuBars(xlWorksheet).Menus(MenuName).MenuItems("Konfiguration speichern unter...")
cbc.OnAction = "Inhalt_Speichern"

Set ... ... ... ... ... ... ... ...

End Sub

Kann mir von euch einer einen Tipp geben, warum es nicht auf jedem PC gleich funktioniert?

Grüße,
Mic2004.

bei Antwort benachrichtigen
Viridis Mic2004 „VBA6 Excel Makro Menüpunkt erstellen funktioniert nicht immer“
Optionen

Interessant wäre, wie die Excel-Optionen auf dem PC deines Kollegen konfiguriert sind. Versuch mal, deinen Variablen auch entsprechende Typen zuzuweisen. So wie du das hier codiert hast haben alle Variablen den Typ VARIANT.

Hier ein Sample:
Private CmdBar As CommandBar
Private CmdBarCtrl As CommandBarControl
Private MenuCtrl As CommandBarControl

Public Sub AddMenu()
Set CmdBar = Application.CommandBars.ActiveMenuBar

Set CmdBarCtrl = CmdBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)

CmdBarCtrl.Caption = "Mein Menü"

AddMenuCtrl "&Kunden erfassen...", "ShowCustomerDlg"
AddMenuCtrl "Info über...", "Info"
End Sub

Sub AddMenuCtrl(strCaption As String, strAction As String)
Set MenuCtrl = CmdBarCtrl.CommandBar.Controls.Add( _
Type:=msoControlButton, Temporary:=True)
With MenuCtrl
.Caption = strCaption
.OnAction = strAction
End With
End Sub

Viridis Software
bei Antwort benachrichtigen