ton code était pas mal, il y avait principalement une erreur avec un end with manquant.
essaye cela
Sub InsereMenuContextuePopUp()
With Application.CommandBars("Cell")
.Reset
With .Controls.Add(msoControlPopup)
.Caption = "Exemple"
.BeginGroup = True
' .FaceId = 266 '"Message d'erreur!?"
' Sous-menu 1 (Exemple1 )
.Controls.Add (msoControlButton)
.Controls(1).Caption = "Exemple 1"
.Controls(1).OnAction = "exemple1"
.Controls.Add (msoControlButton)
.Controls(2).Caption = "Exemple 2"
.Controls(2).BeginGroup = True
.Controls(2).OnAction = "exemple2"
End With
With .Controls(1)
.OnAction = "MyMacro"
.FaceId = 351
End With
End With
End Sub
Sub exemple1()
MsgBox "exemple 1"
End Sub
Sub exemple2()
MsgBox "exemple2"
End Sub