VBA modif Menu contextuel d'un tableau

flobonhomme

XLDnaute Nouveau
Bonjour a tous,

Je souhaiterai ajouter des boutons au menu contextuel sous excel.
Sur une cellule simple pas de problème en utilisant le code suivant :

Code:
Private Sub Workbook_Open()
'Menu accessible quand on fait le clique avec le bouton de droit dans une cellule
Dim cBut As CommandBarButton

On Error Resume Next
'On efface le menu
   Application.CommandBars("Cell").Reset
Set cBut = Application.CommandBars("Cell").Controls.Add(temporary:=True)

'On le remet
With cBut
       .BeginGroup = True
       .Caption = "Insérer lignes / Copier Formules"
       .Style = msoButtonIconAndCaption
       .FaceId = 643
       .OnAction = "InsererLignesCopierFormules2"
End With
On Error GoTo 0
End Sub

j'ai bien le bouton supplémentaire, mais dans tous mes onglets, ceux sont des tableaux qui sont insérer,
du coup lors du clic droit c'est le menu normal qui s'affiche.

Je pense que le nom du menu contextuel sur une mise ne forme tableau ne s'appelle pas "Application.CommandBars("Cell")" mais comment s'appelle-il ?

merci par avance.
 

gilbert_RGI

XLDnaute Barbatruc
Re : VBA modif Menu contextuel d'un tableau

Bonjour,

si ceci peut aider

VB:
Sub barrecmd()
    Dim Ctr As CommandBarControl
    Dim i As Long
    Feuil1.Activate
    i = 0
    For j = 1 To Application.CommandBars.Count
        On Error Resume Next
        i = i + 1
        If CommandBars(j).Name = "" Then GoTo suite

        ActiveSheet.Cells(i, 1) = j
        ActiveSheet.Cells(i, 2) = CommandBars(j).Name
        ActiveSheet.Cells(i, 3) = CommandBars(j).NameLocal
        ActiveSheet.Cells(i, 4) = CommandBars(j).ID
suite:
    Next
End Sub
 

flobonhomme

XLDnaute Nouveau
Re : VBA modif Menu contextuel d'un tableau

Bonjour Gilbert_GRI,

C'est parfait ça.

Pour info le nom de la boite de dialogue est "List Range Popup"

Du coup le code modifié:

Code:
Private Sub Workbook_Open()
'Menu accessible quand on fait le clique avec le bouton de droit dans une cellule
Dim cBut As CommandBarButton

On Error Resume Next
'On efface le menu
   Application.CommandBars("List Range Popup").Reset
Set cBut = Application.CommandBars("List Range Popup").Controls.Add(temporary:=True)

'On le remet
With cBut
       .BeginGroup = True
       .Caption = "Insérer lignes / Copier Formules"
       .Style = msoButtonIconAndCaption
       .FaceId = 643
       .OnAction = "InsererLignesCopierFormules2"
End With
On Error GoTo 0
End Sub

Un grand merci.
Bonne journée.
 
Y

Yohannf

Guest
Bonjour,

sauriez-vous s'il est possible de distinguer les lignes du tableau (première, dernière ou "centrale") lorsqu'on fait un clic droit? Ceci afin d'adapter le menu contextuel selon la ligne sur laquelle on clique.

Je vous remercie par avance.

Yohann
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote