OVH Cloud OVH Cloud

Menu contextuel

1 réponse
Avatar
Serge
Bonjour,

Comment créer un menu contextuel clic droit souris et désactiver celui
d'Excel.

@+

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

Un exemple de code à adapter :

'=================== 'remplacer le menu contextuel des cellules par son propre menu

'1- création du menu
'(à recopier dans un module standard)
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
.Controls.Add Type:=msoControlButton
.Controls(2).OnAction = "Macro2"
.Controls(2).Caption = "Commande2"
End With
MaBarre.ShowPopup
End Sub

Sub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
End Sub

Sub Macro1()
MsgBox "Commande 1 cliquée"
End Sub

Sub Macro2()
MsgBox "Commande 2 cliquée"
End Sub

'2- utilisation dans une feuille
'(à recopier dans le module de la feuille)

Private Sub Worksheet_BeforeRightClick( _
ByVal Target As Range, Cancel As Boolean)
Cancel = True 'empêche l'affichage du menu d'Excel
CreatePopupMenu
End Sub

'3- nettoyage final
'(à recopier dans le module ThisWorkbook)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DelPopupMenu
End Sub
'===================
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,

Comment créer un menu contextuel clic droit souris et désactiver celui
d'Excel.

@+