Menu contextuel personnalisé xl2016

Bonjour

Je recherche à supprimer la possibilité de faire des liens en faisant un clic droit sur une cellule j'ai bien essayé ce bout de code :

For Each Menu In Application.CommandBars("cell").Controls

If Menu.Caption = "Lien &hypertexte..." Then Menu.Enabled = False

Next Menu

ou encore

With Application.CommandBars("Cell")

Set Ctrl = .FindControl(ID:=1576)

Ctrl.Enabled = False

Set Ctrl = Nothing

End With

ou tout simplement

Application.CommandBars("cell").Controls("Lien &hypertexte...").Enabled = False

Qui fonctionne bien avec des fonctions que j'ai rajouté dans les menus mais pas pour les menus déjà existants.

Mais cela ne fonctionne plus dans les derniers Excel récents (j'ai 2016)

Si quelqu'un a une idée.

Merci bien et bonne journée

Bonjour,

Je n'ai pas Excel 2016, le nom du contrôle n'a pas changé ? C'est exactement le même ?

Benead

Bonjour,

Oui c'est le même j'ai fait une petite boucle pour tirer le nom et l'ID de tous les items du menu.

Et je vois que tu as 2013 cela ne devrait pas fonctionner chez toi non plus.

Ptitpanda

Si, j'ai juste testé :

Application.CommandBars("cell").Controls("Lien &hypertexte...").Enabled = False

qui désactive bien le contrôle, il devient grisé, je ne peux plus l'utiliser.

Ah? cela ne fonctionne pas du tout sur 2016, je viens encore de le refaire , je ne comprends pas à moins que ce soit à partir de 2016 que cela ne fonctionne plus (sur d'autres forums j'avais juste vu "sur les Excel récents" )

Merci quand même je vais continuer à chercher.

Bonne soirée

Bonjour,

En fait je viens de m'apercevoir d'un truc c'est qu'on arrive à désactiver ou masquer pratiquement tous les items du menu contextuel sauf

"insérer un commentaire" et "Lien" car ce sont les 2 qui après avoir été utilisé donne accès à des sous menu (Ouvrir le lien- Modifier le lien-..Effacer le commentaire etc)

Bon ça m'avance pas plus mais c'est que la commande doit être différente.... je cherche...je cherche

Alors j'ai trouvé une solution qui servira peut être à d'autres.

Plutôt que de désactiver "lien" dans le menu je l'efface carrément et je le réactive en sortant du classeur: et là le ".delete" fonctionne

Application.CommandBars("Cell").FindControl(ID:=1576).Delete

et bien sur

Application.CommandBars("Cell").Reset

Pour tout remettre dans l'ordre quand on quitte.

Bonne journée

Rechercher des sujets similaires à "menu contextuel personnalise xl2016"