HERBERS Excel-Forum - die Beispiele

Thema: Dem Zell-Kontextmenü ein neues Menü hinzufügen

Home

Gruppe

Menue

Problem

Solange die Arbeitsmappe geöffnet ist, wird dem Zellkontextmenü ein Menü "Auswahl" hinzugefügt, in dem Summe, Zählen, Mittelwert, Anzahl, Min und Max der Zellauswahl angezeigt werden.

Lösung
Geben Sie den Ereigniscode in die genannten Module der Arbeitsmappe ein.
ClassModule: DieseArbeitsmappe

Dim xlApplication As New clsApp

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Set xlApplication.xlApp = Nothing
   On Error Resume Next
   Application.CommandBars("Cell").Controls("Auswahl").Delete
   On Error GoTo 0
End Sub

Private Sub Workbook_Open()
   Set xlApplication.xlApp = Application
End Sub

ClassModule: clsApp

Public WithEvents xlApp As Excel.Application

Private Sub xlApp_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
   Dim oPopUp As CommandBarPopup
   Dim oBtn As CommandBarButton
   Dim oFct As WorksheetFunction
   Set oFct = WorksheetFunction
   With Application.CommandBars("Cell")
      On Error Resume Next
      .Controls("Auswahl").Delete
      On Error GoTo 0
      If Selection.Cells.Count = 1 Then Exit Sub
      If WorksheetFunction.Count(Selection) = 0 Then Exit Sub
      Set oPopUp = .Controls.Add(msoControlPopup)
      oPopUp.BeginGroup = True
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Summe: " & oFct.Sum(Selection)
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
      oPopUp.Caption = "Auswahl"
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Zählen: " & oFct.Count(Selection)
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Anzahl: " & oFct.CountA(Selection)
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Mittelwert: " & Format(oFct.Average(Selection), "0.00")
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Maximalwert: " & oFct.Max(Selection)
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
      Set oBtn = oPopUp.Controls.Add
      With oBtn
         .Caption = "Minimalwert: " & oFct.Min(Selection)
         .Style = msoButtonCaption
         .OnAction = "CmdCopy"
      End With
   End With
End Sub

StandardModule: Modul1

Sub CmdCopy()
   Dim ClipAbLage As DataObject
   Dim sTxt As String
   Set ClipAbLage = New DataObject
   sTxt = Application.CommandBars.ActionControl.Caption
   sTxt = Right(sTxt, Len(sTxt) - InStr(sTxt, ": ") - 1)
   ClipAbLage.SetText sTxt
   ClipAbLage.PutInClipboard
End Sub

Beiträge aus dem Excel-Forum zu den Themen Menue und Context

Excel Form Kontextmenue geht nicht Zellen Kontextmenue ausfuehren
Dynamisches Kontextmenue Makro für Pulldown Menue
Menueeintrag einbinden makro in kontextabhängiges Befehlsmenue
Menue mit eigenen Macros versehen Entfernen eines Eintrages im Kontextmenue
Untermenue von Menueleiste Adresszeile/Formelzeile im Menue ist weg
FaceId bei Untermenue möglich? Menue Leiste ein ausblenden
Menue nur erstellen, wenn noch nicht vorhadnen Menuebar ausblenden
2003 Menuepunkte in 2007 finden Kontexmenue
Filter als Dropdown-Menue in neuem Tabellenblatt Menue
Eigenes Formatierungsmenue Kontextmenue
Autofilter, polldown Menue in Fragmenten? Drop down Menue
Excel Menues mit Bildern Pfeil im Drop-Down-Menue dauerhaft
Drop Down Menue in Zelle Abhängige Drop-Down-Menues
Mehrere Untermenues + Application.caller() Problem Menue - Makro editieren
Menueleiste zerschossen Menueerweiterung um Bildchens
Pulldown Menueeintraege disablen enablen? Menueleiste "Überarbeiten" nie anzeigen !
Alle Menue- und Symbolleisten sind weg. Einfügen von Werten in ein Dropdownmenue
Dropdownmenue Dateien eines Verzeichnisses in Pulldown Menues
drop-down menue als Sortierung Zusaetzliches Menue in Menueleiste
dropdownmenue nicht "selbstentleerend" Menue-Text aus Zelle übernehmen
Menue Sheet beim Oeffnen einer Excel Datei Menueeintrag immer sichtbar machen
Menueleiste An Heiko-Eigenes Context Menü für Maus
Eigenes Context Menü für Maus Kontex-Menue
eigene Menueleiste erstellen Frage zur HelpContextID-Eigenschaft bei Label
FDrage zur HelpContextID-Eigenschaft bei Label Problem beim Menueeintrag verbergen