salut christian,
essaye cette fonction a mettre dans la feuille que tu souhaite
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Liste_Affectation(1 To 100), Liste_Action(1 To 100) As String
Liste_Affectation(1) = "lancer macro 01" ' texte dans le menu
Liste_Affectation(2) = "lancer macro 02"
Liste_Affectation(3) = "lancer macro 03"
Liste_Action(1) = "macro1" ' le nom de la macro a lancer
Liste_Action(2) = "macro2"
Liste_Action(3) = "macro3"
For Each icbc In Application.CommandBars("cell").Controls
If Left(icbc.Tag, 5) = "brccm" Then icbc.Delete
Next icbc
For Each icbc In Application.CommandBars("cell").Controls
If icbc.Tag = "brccm" Then icbc.Delete
Next icbc
For i = 1 To 3
With Application.CommandBars("Cell").Controls _
.Add(Type:=msoControlButton, before:=1, temporary:=True)
.Caption = Liste_Affectation(i)
.OnAction = Liste_Action(i)
.Tag = "brccm" + Str(i)
End With
Next i
End Sub
je l'ai tester rapidement, elle fonctionne mais je ne te garantie pas un bug qui peu trainer...
bon courage
a +
jef