Anzeige
Archiv - Navigation
1636to1640
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
Inhaltsverzeichnis

Neuer Menupunkt im Register AddIn

Neuer Menupunkt im Register AddIn
10.08.2018 09:54:49
eres
Guten Morgen an alle in meinem Lieblingsforum,
mit folgendem Code möchte ich einen neuen Menupunkt im Register AddIn anlegen:
Sub RegisterAddIn_erweitern()
Dim cb As CommandBar
Dim cbc As CommandBarControl
Dim cbcc As CommandBarButton
Debug.Print "RegisterAddIn_erweitern - ANFANG  " & Time
Set cb = Application.CommandBars.ActiveMenuBar
Set cbc = cb.Controls("Extras")
Set cbcc = cbc.Controls.Add
With cbcc
.Caption = "NeuerMenüpunkt"
.OnAction = "MachWas"
.FaceId = 1813
End With
Debug.Print "RegisterAddIn_erweitern - ENDE  " & Time
End Sub
Lasse ich diesen Code in einer normalen xlsm laufen, funktioniert dies problemlos. Ich möchte diesen Code aber im WorkbookOpen eines AddIns laufen lassen, so dass der Menupunkt also dann generiert wird, wenn das AddIn gestartet wird. Aus mir unerverständlichen Gründen wird das WorkbookOpen-Ereignis beim AddIn zwar aufgerufen, jedoch wird kein Menueintrag generiert. Die Debug.Prints hingegen werden sauber im Direktfenster angezeigt.
Rufe ich die Sub im VBA-Editor schrittweise aus dem AddIn auf, so funktioniert es auch ohne Probleme. Habe die xlam auch schon komplett neu angelegt, jedoch ohne Erfolg.
Hat jemand eine Idee, was ich hier falsch mache?
Vielen Dank für jede Hilfe im voraus.
Gruß
eres
p.s. Nur der Vollständigkeit halber: Im AddIn habe ich im Workbook.BeforeClose natürlich auch eine Routine, um den neuen Menueintrag wieder zu löschen. Aber auch da gilt: In einer xlsm funktioniert es wunderbar, in der xlam jedoch nicht.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Neuer Menupunkt im Register AddIn
10.08.2018 14:35:18
Nepumuk
Hallo eres,
wie lädst du das Addin? Über den Addins-Manager / per Workbooks.Open / durch einen Verweis ?
Gruß
Nepumuk
AW: Neuer Menupunkt im Register AddIn
10.08.2018 14:40:07
eres
Hallo Nepumuk,
bisher habe ich es nur über den AddIn Manager versucht, also das AddIn manuell mit der Excel-Standardfunktionalität aktiviert.
Gruß
eres
AW: Neuer Menupunkt im Register AddIn
10.08.2018 14:58:48
Nepumuk
Hallo eres,
so habe ich es auch gemacht. Danach habe ich Excel geschlossen und wieder geöffnet. Der Menüeintrag war anschließend vorhanden.
Mein Code im Addin:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call DeleteButton
End Sub

Private Sub Workbook_Open()
    Call CreateButton
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Const BUTTON_TAG As String = "MyButton"

Public Sub CreateButton()
    Dim cb As CommandBar
    Dim cbc As CommandBarControl
    Dim cbcc As CommandBarButton
    
    Call DeleteButton
    
    Set cb = Application.CommandBars(1)
    
    Set cbc = cb.Controls("Extras")
    
    Set cbcc = cbc.Controls.Add(Type:=msoControlButton, Temporary:=True)
    
    With cbcc
        .Caption = "NeuerMenüpunkt"
        .OnAction = "MachWas"
        .FaceId = 1813
        .Tag = BUTTON_TAG
    End With
End Sub

Public Sub DeleteButton()
    Dim objControl As CommandBarControl
    For Each objControl In Application.CommandBars(1).Controls
        If objControl.Tag = BUTTON_TAG Then
            objControl.Delete
            Set objControl = Nothing
            Exit For
        End If
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Neuer Menupunkt im Register AddIn
10.08.2018 15:20:52
eres
Hallo Nepumuk, interessantes Verhalten ...
in meiner Version (2016) funktioniert es sogar dann schon, wenn ich nach dem Start des AddIns eine neue Datei öffne oder eine gerade geöffnete schließe. Danach ist das Menuband aktualisiert.
Ein Schließen und Neu-Öffnen von Excel ist dabei nicht notwendig.
Dennoch ist es natürlich unschön, dass der Button nicht sofort angezeigt wird.
Vielen Dank für Deinen Hinweis Nepumuk und "nebenbei" auch ein herzliches Dankeschön an Deine super-kompetenten Beiträge hier.
Wünsche Dir und allen ein schönes Wochenende
Gruß
eres
p.s. Ich lasse den Beitrag noch mal offen, falls noch jemand anderes eine tolle Idee hat.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige