HERBERS Excel-Forum - die Beispiele

Thema: Kontextmenü mit Buchungsvorgaben erstellen

Home

Gruppe

Menue

Problem

Wie kann ich beim Wechsel in ein Buchungsblatt ein Kontextmenü mit Einträgen aus einem Datenblatt erstellen lassen? Nach Auswahl eines Menüpunktes soll der entsprechende Datensatz eingetragen werden.

Lösung
Geben Sie den Ereigniscode in das Klassenmodul des Arbeitsblattes ein.
ClassModule: DieseArbeitsmappe

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

ClassModule: Tabelle1

Private Sub Worksheet_Activate()
   Dim oCmdBar As CommandBar
   Dim oPopUp As CommandBarPopup
   Dim oBtn As CommandBarButton
   Dim iRow As Integer
   Call CmdDelete
   Set oCmdBar = Application.CommandBars.Add( _
      Name:="Buchen", Position:=msoBarPopup)
   With Worksheets("Vorgaben")
      For iRow = 1 To WorksheetFunction.CountA(.Columns("B"))
         If Not IsEmpty(.Cells(iRow, 1)) Then
            Set oPopUp = oCmdBar.Controls.Add(msoControlPopup)
            oPopUp.Caption = .Cells(iRow, 1)
         End If
         Set oBtn = oPopUp.Controls.Add
         oBtn.Caption = .Cells(iRow, 2)
         oBtn.OnAction = "Buchen"
         oBtn.Style = msoButtonCaption
      Next iRow
   End With
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   Cancel = True
   Application.CommandBars("Buchen").ShowPopup
End Sub

Private Sub Worksheet_Deactivate()
   Call CmdDelete
End Sub

StandardModule: basMain

Sub Buchen()
   Dim rngFind As Range
   Dim intCol As Integer
   If ActiveCell.Column > 3 Then
      Beep
      MsgBox "Sie müssen sich im Spaltenbereich ""A:C"" befinden!"
      Exit Sub
   End If
   With Worksheets("Vorgaben")
      Set rngFind = .Columns(2).Find(CommandBars("Buchen"). _
         Controls(Application.Caller(2)). _
         Controls(Application.Caller(1)).Caption, _
         lookat:=xlWhole, LookIn:=xlValues)
      For intCol = 1 To 3
         Cells(ActiveCell.Row, intCol) = rngFind.Offset(0, intCol - 1)
      Next intCol
   End With
End Sub

Sub CmdDelete()
   On Error GoTo ERRORHANDLER
   Application.CommandBars("Buchen").Delete
ERRORHANDLER:
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