Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makros ins kontextmenü

makros ins kontextmenü
eddie
Hallo,
wie kann man fertige makros (die Ausführung) in das Kontextmenü einbauen?
Ich habe verschiedene makros, die ich über eine Tastenkombination oder den Klassiker "Extras - makros..." ausführen kann. Ich fände es aber ergonomischer, wenn man die Ausführung von makros über das Kontextmenü (rechte Maustaste) veranlassen könnte.
Ist das möglich?
Danke für einen Tipp
Manfred

Commandbars("Cell").Controls.Add
06.10.2007 14:46:00
NoNet
Hallo Manfred,
hier ein Beispiel,wie Du ein Makro per Kontextmenü starten kannst :


Sub MakroInsKontextmenue()
    Dim cn
    Set cn = Application.CommandBars("Cell").Controls.Add(temporary:=True)
    With cn
        .Caption = "Mein Makro starten" 'Text,derim Kontextmenüe erscheinen soll
        .OnAction = "MeinMakro" 'Makro, das damit gestartet wird
    End With
End Sub
Sub MeinMakro()
    MsgBox "Hurra, es hat geklappt !"
End Sub
Durch den Zusatz "Temporary:=TRUE" wird sichergestellt, dass der Menüpunkt nach dem Beenden von Excel wieder gelöscht wird !
Schönes WE noch, NoNet

Anzeige
AW: Commandbars("Cell").Controls.Add
06.10.2007 23:19:07
xla
Hi,
schon erstaunlich, was da so interpretiert oder geraten wird.
Wie ist zu erkennen, dass das Kontextmenü "Cell" gemeint ist? Es gibt schließlich 'zig Kontextmenüs.
Woran ist zu erkennen, wann die Controls wieder aus dem(welchem Kontextmenü?)
entfernt werden sollen?
mfg xla

TIPP : Öffne Deine Augen und Deinen Verstand....
07.10.2007 00:31:00
NoNet
...dann erkennst evtl. sogar DU (oder : "Ich") das !!
Oder meinst Du etwa, das sollte im Kontextmenü einer PIVOT-Tabelle oder eines Blockpfeil-Autoshapes erscheinen
Gruß, N.

AW: TIPP : Öffne Deine Augen und Deinen Verstand....
eddie
Hallo Jungs, es waren doch glaube ich nur welche,
seid Ihr wahnsinnig?
Ich habe doch nur eine Frage gestellt und ihr macht mich fertig. Geht es nicht ein klein wenig simpler für Menschen wie "du" und ich?
Damit ich überhaupt noch die Chance bekomme, durchzublicken:
Ich behaupte jetzt einmal, mein makro heißt "addieren".
Es wäre nett, wenn jetzt ein makrovorschlag käme, der jederzeit verifizierbar ist. So, jetzt habe ich auch einmal zugeschlagen.
Schön wird das Wochenende, wenn ich auf meine kleine Bitte eine kleine Antwort bekäme.
Ich habe 0 (in wortten NULL) Ahnung, was da zur Analyse und Interpretation von mir losgerissen wurde.
Schönes WE
Manfred

Anzeige
AW: TIPP : Öffne Deine Augen und Deinen Verstand....
07.10.2007 21:47:00
Original
Hi,
du solltest alle Antworten lesen, die an dich gerichtet sind, dann wär dein
Problem sicher schon vom Tisch.
Siehe Antwort Nepumuk.
mfg Kurt

AW: makros ins kontextmenü
06.10.2007 14:51:07
Josef
Hallo Manfred,
ein Beispiel.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Reset
End Sub

Private Sub Workbook_Open()
Dim objCBar As CommandBar, objCPop As CommandBarPopup, objcBtn As CommandBarButton

Application.CommandBars("Cell").Reset


Set objCBar = Application.CommandBars("Cell")

Set objCPop = objCBar.Controls.Add(msoControlPopup, Before:=1, Temporary:=True)

objCPop.Caption = "Makros >>"

Set objcBtn = objCPop.Controls.Add(msoControlButton)

With objcBtn
    .Caption = "Makroname1"
    .FaceId = 186
    .OnAction = "NameDes1Makros"
End With

Set objcBtn = objCPop.Controls.Add(msoControlButton)

With objcBtn
    .Caption = "Makroname2"
    .FaceId = 186
    .OnAction = "NameDes2Makros"
End With

Set objCBar = Nothing
Set objCPop = Nothing
Set objcBtn = Nothing
End Sub

Gruß Sepp

Anzeige
AW: makros ins kontextmenü
06.10.2007 15:00:32
Nepumuk
Hallo Manfred,
würde ich so machen:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
    Call SetCommandbar
End Sub

Private Sub Workbook_Deactivate()
    Call ResetCommandbar
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub SetCommandbar()
    Dim objButton As CommandBarButton
    Set objButton = CommandBars("Cell").Controls.Add(Type:=msoControlButton, Temporary:=True)
    With objButton
        .Caption = "Mein Button"
        .FaceId = 59
        .OnAction = "MeinMakro"
        .Tag = "Finde mich"
        .TooltipText = "Klick mich"
    End With
End Sub

Public Sub ResetCommandbar()
    Dim objControls As CommandBarControls, objControl As CommandBarControl
    Set objControls = CommandBars.FindControls(Tag:="Finde mich")
    If Not objControls Is Nothing Then
        For Each objControl In objControls
            objControl.Delete
        Next
    End If
End Sub

Public Sub MeinMakro()
    MsgBox "Hallo"
End Sub

@Sepp
wenn ich Workbook_BeforeClose abbreche, ist dein Eintrag weg :-(
wenn du meine Commandbar resetest sind die Einträge aus meinen Addins weg :-(
Gruß
Nepumuk

Anzeige
@Nepumuk : *fg* - Genau meine Worte
06.10.2007 15:04:00
NoNet
Hallo Max,
während ich mir diesbezügl. die Finger wund tippe, belegst Du das auch gleich mit einem konkreten Beispiel - vielen Dank für das "Teamwork" ;-)
Gruß, NoNet

Vorsicht mit "RESET" - evtl. unbeabsichtigt !
06.10.2007 15:02:00
NoNet
Hallo Sepp,
grundsätzlich fnde ich es zwar ebenfalls notwendig, beim Schließen von Excel wieder aufzuräumen, aber ein Commandbars("...").RESET halte ich nicht für optimal, denn eskönnte ja auch sein, dasseinige Einträge im Kontextmenü nicht gelöscht werden sollen ! Das ist für mich wie die oft zitierte Methode "Application.Calculation=xlManual....und am Ende : Application.Calculation.xlAutomatic" - woher weiß der Programmierer denn, dass der USer die automatische Berechnung wieder aktivieren möchte ?
"Sauberer" finde ich die Lösung, das Umfeld wieder genau im gleichen Zustand zu verlassen wie man es vorgefunden hat, daher auch mein Vorschlag mit "Temporary:=TRUE". Alternativ könnte man den Eintrag auch per "FindControl" referenzieren und somit gezielt löschen.
Gruß, NoNet

Anzeige
AW: Vorsicht mit "RESET" - evtl. unbeabsichtigt !
06.10.2007 15:14:03
Josef
Hallo NoNet,
das was Du und Nepumuk aufzeigt ist mir duchaus bewusst. Im Fall von Manfred weis ich aber,
das keine sonstigen Kontextmenüeinträge vorhanden sind, die man mit Reset Weg-Beamen würde.
Gruß Sepp

Alles klar ;-) aber dann profitieren von den.....
06.10.2007 15:21:00
den.....
Hallo Josef,
dann profitieren zumindest ein paar "Mitleser" von unseren Informationen und das ist ja auch schon etwas wert ;-).
Schönes WE noch,
Gruß aus dem sonnigen Baden, NoNet

Ja, ich hab da mal wieder profitiert ;o)
06.10.2007 20:41:00
Matthias
Hallo NoNet & Hallo Ihr nimmermüden Helferlein
Auch ich konnte wieder einmal ein paar inaktiven Hirnzellen aktivieren,
Vielen Dank ;o)
Userbild

Anzeige
AW: makros ins kontextmenü
06.10.2007 15:00:33
Original
Hi,
sollen die Makros nur in einer bestimmten Mappe wirken oder allgemein für alle Mappen?
mfg Kurt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige