HERBERS Excel-Forum - die Beispiele

Thema: Aufrufende Menüleistenschaltfläche ermitteln

Home

Gruppe

Menue

Problem

Wie kann ich feststellen, welche Schaltfläche aus einer benutzerdefinierten Menüleiste ein Makro aufgerufen hat?

Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.
ClassModule: DieseArbeitsmappe

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

Private Sub Workbook_Open()
   Dim oBar As CommandBar
   Dim oPopUp As CommandBarPopup
   Dim oBtn As CommandBarButton
   Dim iMonths As Integer, iDays As Integer
   Call CmdDelete
   Set oBar = Application.CommandBars.Add(Name:="J" & _
      Year(Date), MenuBar:=True)
   For iMonths = 1 To 12
      Set oPopUp = oBar.Controls.Add(Type:=msoControlPopup)
      oPopUp.Caption = Format(DateSerial(Year(Date), _
         iMonths, 1), "mmmm")
      For iDays = 1 To Day(DateSerial(Year(Date), iMonths + 1, 0))
         Set oBtn = oPopUp.Controls.Add(Type:=msoControlButton)
         With oBtn
            .Caption = iDays
            .OnAction = "Aufruf"
            .Style = msoButtonCaption
         End With
      Next iDays
   Next iMonths
   Set oBtn = oBar.Controls.Add
   With oBtn
      .Caption = "Schließen"
      .OnAction = "Beenden"
      .Style = msoButtonCaption
   End With
   Application.CommandBars("J" & Year(Date)).Visible = True
   Application.CommandBars("J" & Year(Date)).Enabled = True
End Sub

StandardModule: modMain

Sub Aufruf()
  MsgBox Format(DateSerial(Year(Date), Application.Caller(2), _
    Application.Caller(1)), "dd. mmmm yyyy")
End Sub

Sub CmdDelete()
   On Error GoTo ERRORHANDLER
   With Application
      .CommandBars("J" & Year(Date)).Delete
      .CommandBars("Worksheets Menu Bar").Visible = True
      .CommandBars("Worksheets Menu Bar").Enabled = True
   End With
ERRORHANDLER:
End Sub

Sub Beenden()
   ThisWorkbook.Close
End Sub

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

VBA E-Mail mit Button und Bedingungen Zeilen mit Button verschieben, mit Einschränkungen
Excel Form Kontextmenue geht nicht Rechteck per Button in andere Datei einfügen.
Option Button Wert aus Tabelle (x) OptionButton zur Auswahl
Button in UserForm soll CSV in neuer Instanz öffne Userform Toggle Button rücksetzen
Alle Buttons ausblenden Optionbutton zweimal klicken
Welcher Button wurde geklickt? Button als gelesen markiert ??
WebBrowser und CommandButton Button für Seite einrichten
Reiter in Multipage als Commandbutton Userform - CommandButton per Code löschen
Button für Makro in Taskleiste Button zum Ausdrucken
Info-Button in Excel-Tabelle einfügen Hyperlink als Button
Button automatisch deaktivieren Spinbutton in UF und Textbox
Button zum aktuellen Datum CommandButton nicht mit ausdrucken
Mehrere Buttons über ToggleButton aufrufen Command Button
Wenn Zelle grau dann UF CButton Enabled = False Modul starten per CommandButton ?!
Zellen Kontextmenue ausfuehren Toggle Button gleich nach Öffnung aktivieren
Druckbefehl hinter CommandButton festlegen? Seitenumbrüche unter Druck-Command Button ...
Wenn Button vorhanden, dann Commandbutton verschieben
Button klicken=>Aktion nach einer bestimmten Zeit Button ein-/ausblenden bei bestimmten Bedingungen
Wurde Optionbutton in Frame gewählt? Dynamisches Kontextmenue
ComboBox mit CommandButton verknüpfen Ein Button - zwei funktionen
CommandButton Code zur laufzeit erstellen Buttons - Makros
Button drücken während Zelleingabe Daten per button in tabelle2 schreiben
Button 1+,1- Mit Button in Excel Prozess auslösen
Makro per Button Starten/Beenden Makro für Pulldown Menue
Mauszeiger auf CommandButton Zeilen ausblenden über Button