voilà, j'ai créé une fonction mais j'ai encore des problèmes...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Sub AjoutShortCut(X As Long, Y As Long)
'procédure de création d'un menu contextuel
Dim cbpShortCut As CommandBar
Dim cbcMenuItem As Variant '''' quel est le type a associer???
On Error GoTo err
'nettoyage
Application.CommandBars("myShortCutMenu").Delete
'creation du menu contextuel
Set cbpShortCut = CommandBars _
.Add(, position:=msoBarPopup)
cbpShortCut.Name = "myShortCutMenu"
With cbpShortCut.Controls
Set cbcMenuItem = .Add(msoControlButton)
With cbcMenuItem
.Caption = "Exclure"
.OnAction = "ExclureNais" ' cela fait référence à la fonction appelée quand on sélectionne le menu
.Tag = "Exclure"
End With
Set cbcMenuItem = .Add(msoControlEdit)
With cbpShortCut.Controls(2)
.Caption = "Rechercher"
.OnAction = "RechNais"
.Tag = "Rech"
End With
End With
cbpShortCut.ShowPopup X, Y
Exit Sub
err:
MsgBox "Erreur survenue à la création du menu contextuel de filtre : " & vbCrLf & err.Description & " (" & err.Number & ").", vbExclamation, "Problème de menu contextuel"
End Sub |
Comme vous pouvez le voir j'ai fait appel au type variant pour que cela passe...
sinon si je mets
Dim cbcMenuItem As CommandBarButton
je suis en erreur de type incompatible! car je ne peux pas utiliser
Set cbcMenuItem = .Add(msoControlEdit)
en plus, en utilisant le type variant je ne peux pas gérer le style ou ou le faceid.
Avez vous une solution ?
Partager