Je sais que c'est un ancien poste mais je crois qu'il ya une méthode plus efficace.
Userform Menu contextuel code de classe
http://www.andypope.info/vba/uf_contextualmenu.htm
Il y a même des feuilles de calcul pour l'échantillon excel les exemples de code.
Le module de classe gère la construction du menu contextuel, la capture du clic droit dans les zones de texte et la coupe réelle. Copier et coller des actions. La classe utilise l'objet ActiveControl de l'userform. Le code gère même les contrôles dans les contrôles de conteneur tels que les cadres et Multipage.
Le code d'initialisation suivant, à partir du formulaire utilisateur, montre à quel point il est simple de définir et d'utiliser l'objet de classe. Vous n'avez qu'à déclarer une variable à l'objet, puis définir une référence pour chaque zone de texte dans laquelle vous souhaitez disposer des fonctionnalités du menu contextuel. Vous pouvez parcourir tous les contrôles et référencer automatiquement chaque zone de texte.
Private m_colContextMenus As Collection
Private Sub UserForm_Initialize()
Dim clsContextMenu As CTextBox_ContextMenu
Dim cTRL as Control
Set m_colContextMenus = New Collection
For Each cTRL In Me.Controls
Select Case TypeName(cTRL)
Case "TextBox"
'MsgBox cTRL.Name & ": " & Me.Controls(cTRL.Name).Value
Set clsContextMenu = New CTextBox_ContextMenu
With clsContextMenu
Set .TBox = Me.Controls(cTRL.Name)
Set .Parent = Me
End With
m_colContextMenus.Add clsContextMenu, CStr(m_colContextMenus.Count + 1)
Case Else
'MsgBox TypeName(cTRL) & ": " & cTRL.Name
End Select
Next
End Sub
Download example workbook which contains both .xls and .xlsm files
Si pas un comportement par défaut lorsque vous cliquez à droite sur une zone de texte, le menu standard devrait apparaître avec etc Couper/Coller dessus? – t0mm13b
Je pensais que c'était la valeur par défaut et je ne pensais pas que ce serait un problème jusqu'à ce que je reçois des plaintes d'utilisateurs qui ne pouvaient pas coller. J'ai essayé de faire un clic droit sur la zone de texte et rien ne s'affiche. Ctrl-v fonctionne bien cependant. – BrianZ