Menu contextuel: supprimer Options de collage et séparateurs

Bonjour,

comme indiqué dans le titre, je cherche à supprimer la zone "Options de collage" (son titre et les boutons qui vont avec) du menu contextuel obtenu par clic droit.

L'un de vous pourrait-il m'aider, svp ?

Par ailleurs, comment peut-on supprimer les séparateurs (par exemple, ceux autour de "Insérer un commentaire") de ce menu contextuel, svp?

Je vous remercie par avance !

Yohann

Bonjour et merci de ta réponse.

En fait, ce n'est pas tout à fait la même chose : le lien que tu as envoyé permet de ne pas afficher le petit menu à développer qui apparaît quand tu copies-colles une cellule.

Mon besoin est de faire disparaitre la zone "Options de collage" du menu contextuel qui apparaît au clic droit (l'application de la méthode dont parle le lien ne fait pas disparaître ces données du menu contextuel).

Faute de mieux, j'ai trouvé un moyen radical de contourner le problème : supprimer tous les contrôles du menu par défaut et ajout de mes propres contrôles (du coup, ça supprime et la zone Options de collage et les séparateurs)... Un peu radical tout de même.

Set CtrlMenu = Application.CommandBars("List Range Popup") 'dans mon cas, c'est sur les tableaux structurés que je travaille, d'où le "List Range Popup"

For Each Item In CtrlMenu.Controls

Item.Delete

Next

Si quelqu'un a mieux, je suis preneur !

A bientôt,

Yohann

Bonjour,

Ça bloque les manipulations souris.

Mais, est-ce que ça bloque aussi : CTRL+X (couper), CTRL+C (Copier) et CTRL+V (Coller) ?

gelinotte

Non, les raccourcis clavier restent actifs ; normalement, on doit pouvoir les bloquer aussi (je ne sais pas encore si je vais bloquer cette fonctionnalité).

Pour info, l'application que j'essaie de faire est un diagramme de Gantt.

Yohann

Après il faudra aussi bloquer les menus non-contextuels, les Shift-Ins/shift-Del et autres moyens de faire un copie,coller,couper, comme en utilisant l'object clipboard de VBA par exemple, ou DDE ou OLE-Automation...

Microsoft a tout fait pour "exposer" les données d'Excel afin d'accroitre son intégration (c'était la mode dans les années 1990) et vous voulez le refermer... Ca va être laborieux.

J'espère que ce n'est pas pour assurer la sécurité d'un classeur Excel top-secret!

Oui, le but est que l'utilisateur n'écrase pas les formules ou encore ne modifie pas malencontreusement les éventuelles plages nommées...

ok, bonne chance..

Merci !

Bon, juste pour information, j'ai un moyen radical de supprimer la zone Options de collage et les séparateurs du menu contextuel... il suffit de supprimer le menu contextuel et de le recréer avec les commandes qui nous intéressent.

J'ai trouvé un code sur le Net qui permet de récupérer les noms et ID des commandes des différents menus contextuels de base, de manière à créer mes propres commandes ; par exemple, si je souhaite utiliser l'icône d'une commande par défaut pour une commande perso, je récupère l'ID de cette commande. Comme ID= FaceID (code de l'icône), je sais afficher la bonne icône.

Exemple:

Option Explicit

Dim CB As CommandBar
Dim CT As CommandBarControl
Dim CT1 As CommandBarControl
'#########################################################
'### Enumère tous les Controls de la CommandBar List Range Popup
'### et les inscrit dans la feuille active.
'#########################################################
Sub EnumCommandBarControl_tabl()
Dim i&
Set CB = Application.CommandBars("List Range Popup")
  i& = i& + 1
  Range("a" & i& & "") = CB.Name
  For Each CT In CB.Controls
    Range("b" & i& & "") = CT.Caption
    Range("c" & i& & "") = CT.ID
    If CT.Type = 10 Then
        For Each CT1 In CT.Controls
            Range("d" & i& & "") = CT1.Caption
            Range("e" & i& & "") = CT1.ID
            i& = i& + 1
        Next CT1
    End If
    i& = i& + 1
  Next CT
End Sub
'#########################################################
Rechercher des sujets similaires à "menu contextuel supprimer options collage separateurs"