Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
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

Kontextmenü mit Untermenü

Kontextmenü mit Untermenü
02.06.2015 21:39:04
Alexander
Hallo liebe Profis,
ich habe zwei Fragen zur Erstellung von Kontextmenüs.
1. Kann ich iregendwie eine FaceId zum Obermenü erstelllen?
2. Warum wird immer nur der letzte im Code aufgeführte Untermenüpnkt angezeigt?
Hier der Code:
Public Sub SetCommandbar()
    Dim objCmdBar As CommandBar
    Dim objCPopup As CommandBarPopup
    Dim objButton As CommandBarButton
    Set objCmdBar = Application.CommandBars("Cell")
    Set objCPopup = objCmdBar.Controls.Add(msoControlPopup, Temporary:=True)
    Set objButton = objCPopup.Controls.Add(msoControlButton, Temporary:=True)
    With objCPopup
        .Caption = "Menü"
        .BeginGroup = True
        '.FaceID = 59 
        With objButton
            .Caption = "UnterMenü1"
            .FaceId = 59
            .OnAction = "MeinMakro"
        End With
        With objButton
            .Caption = "UnterMenü2"
            .FaceId = 59
            .OnAction = "MeinMakro"
        End With
        With objButton
            .Caption = "UnterMenü3"
            .FaceId = 59
            .OnAction = "MeinMakro"
        End With
    End With
End Sub
Public Sub MeinMakro()
    MsgBox "Hallo"
End Sub

Gruß
Alex

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

Betreff
Datum
Anwender
Anzeige
AW: Kontextmenü mit Untermenü
02.06.2015 21:58:08
Uduuh
Hallo,
1.: PopUps unterstützen keine FaceID
2. Warum wird immer nur der letzte im Code aufgeführte Untermenüpnkt angezeigt?
weil du nur einen Button erstellst.
Public Sub SetCommandbar()
Dim objCmdBar As CommandBar
Dim objCPopup As CommandBarPopup
Dim objButton As CommandBarButton
Set objCmdBar = Application.CommandBars("Cell")
Set objCPopup = objCmdBar.Controls.Add(msoControlPopup, Temporary:=True)
With objCPopup
.Caption = "Menü"
.BeginGroup = True
'.FaceID = 59
Set objButton = objCPopup.Controls.Add(msoControlButton, Temporary:=True)
With objButton
.Caption = "UnterMenü1"
.FaceId = 59
.OnAction = "MeinMakro"
End With
Set objButton = objCPopup.Controls.Add(msoControlButton, Temporary:=True)
With objButton
.Caption = "UnterMenü2"
.FaceId = 59
.OnAction = "MeinMakro"
End With
Set objButton = objCPopup.Controls.Add(msoControlButton, Temporary:=True)
With objButton
.Caption = "UnterMenü3"
.FaceId = 59
.OnAction = "MeinMakro"
End With
End With
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: Kontextmenü mit Untermenü
02.06.2015 22:04:48
Alexander
Hallo Udo,
ich danke dir.
Das Passt wunderbar
Gruß
Alex

AW: Kontextmenü mit Untermenü
03.06.2015 05:21:08
Luschi
Hallo Alexander,
ich benutze die Kontectmenüerstellung auf der Basis von ' Application.CommandBars("Cell")' nicht mehr, das es Situationen gibt, wo Ecxel das Kontextmenü neu zeichnet und damit meine definierten Menüpunkte erst mal weg sind. So ein Fall sind die Bereiche, die 'als Tabelle formatiert' wurden. Diese Formatvorlage überschreibt das normale Kontextmenü der Zellen.
Deshalb mache ich es so:
https://www.herber.de/forum/messages/1428396.html
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Kontextmenü mit Untermenü
03.06.2015 17:06:14
Alexander
Danke Luschi für den Tip
Gruß
Alex

@Luschi nachgefragt
04.06.2015 22:25:06
Alexander
Hallo Luschi,
Gibt es bei dieser Methode die möglichkeit das Standard Kontextmenü zu erweitern ohne alles nachbauen zu müssen? Denn mir ist aufgefallen das die Standard Funktionen unterschiedliche IDs bei verschiedenen Versionen haben.
Gruß
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige