Bonjour à tous,

Je veux un menu contextuel particulier pour une feuille en particulier.

Je fais un appel à des procédures :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub Worksheet_Activate()
     Call Creation_popup 
End Sub
 
Private Sub Worksheet_Deactivate()
    Call Suppression_popup
End Sub
Le code pour modifier le menu contextuel des cellules est du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Creation_popup
Set Cbar = CommandBars("Cell")
Set Cbut = Cbar.Controls.Add(msoControlButton)
For i = 1 to 3
  With Cbut
    .Caption = "2P"
    .OnAction = "CR" & i 
    .PasteFace 
  End With
Next i
End Sub
Le code pour retirer mes ajouts est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub Suppression_popup()
    Dim i As Integer

    On Error Resume Next
    For i = 1 To 3
        With Application.CommandBars("Cell")
            .Controls(ICICICICICIC).Delete
        End With
    Next i
    
    On Error GoTo 0
End Sub
Premier problème :
Mais je ne vois pas quel nom donner à mon contrôle (avec quelle propriété) ?

Second problème :
L'utilisation de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.CommandBars("cell").Reset
remet bien le contrôle à zéro sauf que je n'ai plus accès à la hauteur de ligne et la largeur de colonne dans le menu contextuel.



ESVBA