XL 2016 Menu contextuel sur Clic droit d'un shape

fanch55

XLDnaute Barbatruc
Bonjour,
Cela fait 4 heures que je sèche en essayant de rajouter une option au menu contextuel pour un shape quel qu'il soit .
Le shape ciblé est en fait une image .
Ci-dessous le code :
VB:
Sub Go_Popup()
    Add_Popup_Option "Shapes"
End Sub
Sub Add_Popup_Option(Bar As String)
    With Application.CommandBars(Bar)
        If .Type = msoBarTypePopup Then
            .Reset
            With .Controls.Add(msoControlButton, 1, , 1)
                .Caption = "AEIOUY ===> " & Bar
                .OnAction = "Pasglop"
            End With
        Else
            Debug.Print Bar & " n'est pas de type Popup"
        End If
    End With
End Sub

Quand je fais un clic droit sur un shape , aucune option supplémentaire n'est affichée .
Cell.jpg


Par curiosité, j'ai refait ce code pour toutes les commandbars de type Popup :

VB:
Sub Set_Popup_Menus()
Dim Cbar As CommandBar
    For Each Cbar In Application.CommandBars
       Add_Popup_Option Cbar.Name
    Next
End Sub

Quand je fais un clic droit sur une cellule, une colonne, une ligne ou autres, cela fonctionne.
Shape.jpg


Quand c'est un Shape, toujours rien ....

Existerait-il quelqu'un ayant déjà solutionné ce problème ?
Un palliatif serait d'utiliser le onclick du shape mais ce n'est pas vraiment mon objectif ..

Par avance Merci,
Fanch
 

patricktoulon

XLDnaute Barbatruc
bonsoir
le menu dans ta capture 1 n'est pas le menu shapes c'est un menu d’édition et de paramétrage pour tes shapes y compris pictures
pourquoi tu ne vois pas ton item?
c'est un problème que je connais bien
et bien le clic droit le créé dynamiquement c'est l'application qui s'en charge
le menu shapes c'est celui la et comme tu peux le voir dans la capture qui suit le bouton apparaît
il apparait pourquoi
et bien tout simplement parceque c'est moi qui le show et non l'application qui te l'affiche
de ce fait ca te le show pas comme a l'origine mais bien modifié
demo3.gif


et pour la peine tu a l'auto destruction par le .reset a chaque click et choix dans le menu
tu n'a donc pas a le détruire en quittant

affecte la macro createoptionmenu a tes shapes ou images celle que veux

VB:
Sub createoptionmenu()
    ActiveSheet.Shapes(Application.Caller).Select
    With CommandBars("Shapes")
       .Reset
        With .Controls.Add(msoControlButton, 1, , 1)
            .Caption = "AEIOUY ===> " & Bar
            .OnAction = "Pasglop"
        End With
    .ShowPopup
    .Reset
    End With
End Sub
;)
 

fanch55

XLDnaute Barbatruc
Salut Patrick,
C'est bien ce que je disais, je ne veux pas utiliser le click gauche mais le click droit comme un menu contextuel tel que l'attendu d'Excel
Un palliatif serait d'utiliser le onclick du shape mais ce n'est pas vraiment mon objectif ..
C'est un palliatif que j'ai déjà exploré, je ne veux pas l'affecter en tant que macro. :cool:
 

fanch55

XLDnaute Barbatruc
salut Staple,
Ce qui tombe bien puisque cela va à l'encontre de l'ergonomie classique.
Je ne comprend pas bien, on peut modifier les commandbars sur tous les objets sauf les shapes qui ne feraient pas partie des objets classiques ?
les shapes seraient donc des objets non classiques car très peu utilisés .... ( galetjade ),
je pense plutôt que c'est un oubli des développeurs d'Excel ...
 

Staple1600

XLDnaute Barbatruc
Re

L'ergonomie sous Windows, c'est qu'on clique gauche sur un contrôle pour lancer une action (par défaut)
(Le clic-droit, c'est contextuel et adaptatif)
Et comme son nom l'indique commandbar("CELL") est liée aux cellules

PS:Et moi aussi, j'ai erré dans le désert jadis ;)
 

fanch55

XLDnaute Barbatruc
Staple, le cell n'est pas concerné et je cible un menu contextuel pour le shape et adaptatif et je n'y arrive pas (mea culpa mais [je suis athée] Microsoft, lamma sabachtani),
Sans dérision aucune, je ne vois pas pourquoi c'est impossible ...
 

fanch55

XLDnaute Barbatruc
Bon ben, après de vaines recherches sur internet, je vais considérer que ce n'est pas ou plus actuellement possible [ pourquoi avoir fait un commandbar("Shapes") modifiable alors ... ]

C'est bizare, je n'ai plus de notification par mail pour les discussions ...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 091
Messages
2 116 110
Membres
112 662
dernier inscrit
lou75