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

Makros über Menüleiste aufrufen

Makros über Menüleiste aufrufen
JensF
Hallo Leute,
ich habe einen eigenen Menüpunkt mit vielen Menüunterpunkten. Diese sollen über .OnAction das selbe Makro aufrufen. Abhängig vom aufrufenden Menüunterpunkt soll das Makro dann unterschiedlich verzweigen.
Wie komme ich an die Info, welcher Menüpunkt das Makro aufgerufen hat? Bei aufrufenden Shapes gibt es ja Application.Caller, aber bei Menüs klappt das nicht.
Viele Grüße
Jens
AW: Makros über Menüleiste aufrufen
31.08.2009 09:15:39
JogyB
Hi.
Lass jeden Menüunterpunkt ein eigenes Makro aufrufen, das dann wieder das eigentliche Makro ausführt. An dem Punkt kannst Du den Namen des Menüunterpunktes übergeben.
Gruss, Jogy
AW: Makros über Menüleiste aufrufen
31.08.2009 09:40:37
JensF
Hi,
danke aber das kann ich so nicht machen. Das Menü wird dynamisch erstellt und hat sehr viele Unterpunkte.
Da finde ich es unzweckmäßig, zig aufrufende Makros vorzuhalten.
Grüße
Jens
AW: Makros über Menüleiste aufrufen
31.08.2009 09:47:14
Nepumuk
Hallo Jens,
über Application.CommandBars.ActionControl.... kommst du an das aufrufende Control. Du kannst auch Parameter über die OnAction - Eigenschaft übergeben. Oder die Parameter - Eigenschaft oder Tag - Eigenschaft.
Gruß
Nepumuk
Anzeige
OnAction mit Parameter: wie?
31.08.2009 10:16:03
JensF
Hi Nepumuk,
damit komme ich klar:
Application.CommandBars.ActionControl...
Trotzdem noch interesse halber: Wie kann ich über OnAction Paramter mitgeben?
Menüpunkt.Onaction = "Makro1","Paramter"
Menüpunkt.Onaction = "Makro1,Parameter"
klappt beides nicht.
Grüße, Jens
AW: OnAction mit Parameter: wie?
31.08.2009 10:41:57
Nepumuk
Hallo Jens,
Beispiel1:
''MENU_Activate_Sheet_By_Name "Tab_Development_Log"'
Beispiel2:
'MENU_Activate_Sheet_By_Name "Tab_Cockpit_OEs", "COCKPIT_OEs_7ETP_Aufwand_TL", "COCKPIT_OEs_7ETP_Aufwand_BR"'
Prozedurname fett Parameter kursiv. Der ganze String muss in Hochkomma stehen. Da du das im Code aber so nicht hinschreiben kannst (Hochkomma bedeutet ja Kommentar) musst du den String zusammenbasteln.
Gruß
Nepumuk
Anzeige
AW: OnAction mit Parameter: wie?
31.08.2009 22:40:47
JensF
Hi,
danke Dir. Ehrlich gesagt, das raffe ich nicht.
(Ist aber nicht so wichtig, mit .ActionControl.Tag habe ich die für mich optimale Lösung hinbekommen.)
Viele Grüße
Jens
:-)
AW: OnAction mit Parameter: wie?
31.08.2009 23:29:18
Uduuh
Hallo Jens,
sooo grob ist das doch nicht.
Sub tt()
Dim myBar As CommandBar, myControl As CommandBarButton
Set myBar = CommandBars("Standard")
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.Style = msoButtonCaption
.Caption = "test"
.OnAction = "'" & "MySub 5" & "'"
End With
End Sub
Sub mySub(x)
MsgBox x ^ 2
End Sub
Für Text
Sub tt()
Dim myBar As CommandBar, myControl As CommandBarButton
Set myBar = CommandBars("Standard")
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.Style = msoButtonCaption
.Caption = "test"
.OnAction = "'" & "MySub ""Hallo Jens""" & "'"
End With
End Sub
Sub mySub(x)
MsgBox x
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: OnAction mit Parameter: wie?
01.09.2009 23:42:36
JensF
Hi Udo,
ach so. Danke :-)
Viele Grüße
Jens
Hello Excel World...
02.09.2009 00:15:03
NoNet
Hey Jens,
und noch eine Variante zu Uduuhs Codebeispiel : Mehrere Menüpunkte in einem Array :
VBA-Code:
Sub StandardSymbolleisteErweitern()
    Dim myBar As CommandBar, myControl As CommandBarButton
    Dim myControl1 As CommandBarPopup
    Dim intT As Integer, arr
    arr = Array("Boris", "JensF", "NoNet", "Uduuh", "WF", "World...")
    Set myBar = CommandBars("Standard")
    Set myControl1 = myBar.Controls.Add(Type:=msoControlPopup, temporary:=True)
    myControl1.Caption = "My Excel World"
    For intT = LBound(arr) To UBound(arr)
        Set myControl = myControl1.Controls.Add(Type:=msoControlButton)
        With myControl
          .Style = msoButtonCaption
          .Caption = arr(intT)
          .OnAction = "'" & "MySub ""Hello " & arr(intT) & """" & " '"
        End With
   Next
End Sub
Sub mySub(x)
    MsgBox x
End Sub
Gruß, NoNet
PS : Das Array ist natürlich beliebig erweiterbar/reduzierbar und die (exemplarischen) Namen nach Belieben austauschbar ;-) - Nur damit sich niemand übergangen fühlt :-D
AW: Makros über Menüleiste aufrufen
JogyB

Hi.
Die andere Lösung ist natürlich schöner, aber was hielte Dich davon ab, die Makros dynamisch zu erstellen?
Gruss, Jogy
Anzeige
AW: Makros über Menüleiste aufrufen
31.08.2009 09:54:29
JogyB
Hi.
Die andere Lösung ist natürlich schöner, aber was hielte Dich davon ab, die Makros dynamisch zu erstellen?
Gruss, Jogy

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige