Bonjour à toutes et à tous,

Suite à cette discussion grâce à laquelle j'ai, je pense, compris comment ajouter un contrôle déclenchant une macro dans un menu contextuel, j'ai malgré tout ce message d'erreur qui apparaît après redémarrage de l'ordinateur:

Impossible d'exécuter la macro ''C:\Chemin\PERSONAL.xlsb'!DateDoc'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées.

Voici les codes que j'utilise pour ajouter le contrôle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Option Base 1
 
Private mccd(2) As CommandBar   'menu contextuel clic-droit
Private ctrl As Variant         'contrôle d'un menu contextuel
Private i As Byte
 
Sub AjouteContrôleDateDoc()
 
        Set mccd(1) = Application.CommandBars("Cell")
        Set mccd(2) = Application.CommandBars("Query")
 
        EffaceContrôle
 
For i = 1 To 2
    With mccd(i).Controls _
        .add(msoControlButton, , , 6)
        .Caption = "Date du jour"
        .OnAction = "MenusContextuels.DateDoc"
        .Tag = "ContrôlePerso"
    End With
        mccd(i).Controls(6).BeginGroup = True
Next
 
End Sub
 
Sub EffaceContrôle()
 
        Set mccd(1) = Application.CommandBars("Cell")
        Set mccd(2) = Application.CommandBars("Query")
 
For i = 1 To 2
    For Each ctrl In mccd(i).Controls
        If ctrl.Tag = "ContrôlePerso" Then ctrl.Delete
    Next ctrl
Next
 
End Sub
Précision, en lançant ce code après le message d'erreur, "Date du jour" et l'emplacement de la macro apparaissent bien dans la fenêtre d'exécution (Ctrl+G).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub InfoMenus()
 
        Set mccd(1) = Application.CommandBars("Cell")
        Set mccd(2) = Application.CommandBars("Query")
 
For i = 1 To 2
    For Each ctrl In mccd(i).Controls
        If ctrl.Tag = "ContrôlePerso" Then Debug.Print ctrl.Caption & Chr(9) & ctrl.OnAction
    Next ctrl
Next
 
End Sub
Quelqu'un ou quelqu'une aurait-il ou elle une idée d'où le problème vient?

Cordialement