Lancement macro dans clic droit

  • Initiateur de la discussion Initiateur de la discussion rudymagny
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rudymagny

XLDnaute Occasionnel
Rebonsoir le forum,

un autre sujet,
Je voudrais pouvoir lancer une macro de cette façon:

Dans mon classeur, je fais cli droit et dans le menu apparait ma macro à lancer.

Je voudrais éviter de passer par une bouton dans le menu d'excel!

Est ce possible?

Merci d'avance
 
Bonjour Rudymagny. bonjour le forum,

Je ne sais pas ajouter une menu au menu contextuel (mais il me semble avoir déjà vu ça ici) mais tu peux utiliser la macro événementielle BeforeRightClick. Tu peux en limiter l'action sur une cellule/plage particulière en faisant par exemple :


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'si le clic-droit n'a pas lieu dans la plage A1😀20 (à adapter)
'sort de la procédure (éffacer cette ligne si on veut que la macro agisse partout...)
If Application.Intersect(Target, Range('A1😀20')) Is Nothing Then Exit Sub

Cancel = True 'évite le menu contextuel lié au clic-droit
MsgBox 'remplace cette ligne par le code de ta macro'
End Sub

Copie ce code dans le module Worksheet de l'onglet appriprié.
 
Bonjour le forum
Bonjour rudymagny, bonjour très cher Robert

Oui Robert a raison, le problème a déjà été évoqué (Ajout au menu contextuel lors d'un click droit ==> merci Didier (mDF si tu nous regardes ... coucou), donc :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars('Cell').Controls('Ma_Macro').Delete 'Ma_Macro étant le nom donné 
End Sub

Private Sub Workbook_Open()
With Application.CommandBars('Cell').Controls.Add(msoControlButton)
   .Caption = 'Ma_Macro'
   .BeginGroup = False
   .FaceId = 2950 'Peut être changé = nombreuses FaceId
   .OnAction = 'apparition'
End With
End Sub

Puis dans un module
Code:
Sub apparition()
MsgBox 'Coucou'  'Ta macro
End Sub

Bonne après midi à toutes & à tous 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
269
Retour