HERBERS Excel-Forum - die Beispiele

Thema: Menüpunkte sortieren

Home

Gruppe

Menue

Problem

Wie kann ich in XL8 einzelne Menüpunkte eines benutzerdefinierten Menüs alphabetisch anordnen?

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: DieseArbeitsmappe

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

StandardModule: basMain

Sub NeuesMenu()
   Dim oBar As CommandBar
   Dim oPopUp As CommandBarPopup
   Dim oBtn As CommandBarButton
   Set oBar = Application.CommandBars("Worksheet Menu Bar")
   Set oPopUp = oBar.Controls.Add(msoControlPopup, temporary:=True)
   Call MenuLoeschen
   oPopUp.Caption = "MeinMenu"
   Set oBtn = oPopUp.Controls.Add
   oBtn.Caption = "B-Befehl"
   Set oBtn = oPopUp.Controls.Add
   oBtn.Caption = "A-Befehl"
   Set oBtn = oPopUp.Controls.Add
   oBtn.Caption = "C-Befehl"
End Sub

Sub MenuSortieren()
   Dim arr() As String
   Dim oBar As CommandBar
   Dim oPopUp As CommandBarPopup
   Dim oBtn As CommandBarButton
   Dim iCountA As Integer, iCountB As Integer
   Dim sTxt As String
   Set oBar = Application.CommandBars("Worksheet Menu Bar")
   Set oPopUp = oBar.Controls("MeinMenu")
   For Each oBtn In oPopUp.Controls
      iCountA = iCountA + 1
      ReDim Preserve arr(iCountA)
      arr(iCountA) = oBtn.Caption
   Next oBtn
   For iCountA = 1 To UBound(arr)
      For iCountB = iCountA + 1 To UBound(arr)
         If arr(iCountA) > arr(iCountB) Then
            sTxt = arr(iCountA)
            arr(iCountA) = arr(iCountB)
            arr(iCountB) = sTxt
         End If
      Next iCountB
   Next iCountA
   For Each oBtn In oPopUp.Controls
       oBtn.Delete
   Next oBtn
   For iCountA = 1 To UBound(arr)
      Set oBtn = oPopUp.Controls.Add
      oBtn.Caption = arr(iCountA)
    Next iCountA
End Sub

Sub MenuLoeschen()
   On Error Resume Next
   Application.CommandBars( _
      "Worksheet Menu Bar").Controls("MeinMenu").Delete
   On Error GoTo 0
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