Macro VBA pour personnaliser le menu clic-droit d'Excel

Nano de Nantes

Membre enregistré
27 Novembre 2022
2
1
73
Bonjour à tous,

Je voudrais réutiliser une de mes anciennes macro VBA pour Excel sur une nouvelle application. La macro avait été développée sous une ancienne version d'OS et une ancienne version d'Excel, mais je rencontre maintenant une erreur d'exécution 438 "Propriété ou méthode non gérée par cet objet" (Je suis maintenant sous vba 7.1 et excel 365 version 16.67 sur Mac). D'après un forum PC, il semble qu'elle fonctionne toujours sous Excel/Windows.

Il s'agit de remplacer le menu déroulant clic-droit par défaut d'excel par un menu déroulant personnalisé (8 items "DOSSIERS") dont chaque item est lui-même un sous-menu déroulant "RUBRIQUES". Les items "DOSSIERS" et sous-items "RUBRIQUES" sont définis dans la feuille DOSSIERS. Un clic-droit dans la feuille FEUILLE DE TRAVAIL doit permettre d'afficher mes menu/sous-menus déroulants. En dé-cliquant sur une cellule quelconque, ça doit afficher le dossier sélectionné dans la colonne 5 et la rubrique sélectionné dans la colonne 6

La macro supprime le PopMenu d'Excel et crée un menu contextuel "ClicDroit": Set ContextMenu = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup). L'erreur se produit lors de l'affectation des Controls du menu:

.Controls(n).Controls.Add(Type:=msoControlButton, Before:=m).Caption = NomRub(n, m)
.Controls(n).Controls(NomRub(n, m)).OnAction = "'Code_Rubrique " & Chr(34) & NomDossier(n) & Chr(34) & "," & Chr(34) & NomRub(n, m) & Chr(34) & "'"

Je tourne en rond. Merci de voir si vous pouvez m'aider. N'hésitez pas à me dire si je ne suis pas clair.

Je suis surpris de voir qu'on ne peut pas joindre un fichier .xlsm sur ce forum (??). Contrairement au forum pour windows! Pas pratique! Un fichier .pdf n'a pas d'intérêt.