Bonjour à tous,
J'utilise régulièrement la programmation en vba sous Excel, avec lequel je suis assez à l'aise. Mais j'ai dû passer par Word pour un fichier particulier... et là, c'est plus compliqué. J'ai réussi à créer des macros, que j'ai voulu regrouper dans un nouveau menu contextuel. Après passablement de recherches, j'ai récupéré une macro sur un site de programmation en rapport avec Word, macro qui a bien fonctionné sous Word et dans laquelle j'avais ajouté mes macros. Puis, je n'ai plus eu à utiliser le fichier pendant un certain temps. Or, j'ai voulu le reprendre et là, mon menu contextuel ne fonctionne pas. Comme il fonctionnait avant, que je n'ai rien changé et qu'il ne fonctionne plus maintenant, j'ai pensé que le problème pouvait venir d'une mise à jour. Mais je ne vois pas laquelle. Je précise que je travaille sous Mac (mac os Monterey 12.2.1), avec un iMac et un MacBook Pro (le problème est le même sur les deux machines).
La macro plante dès la deuxième ligne, avec ce message:
Merci d'avance pour toutes les suggestions utiles que vous pourriez me faire!Erreur d'exécution "-2147467259 (80004005)
La méthode "Add" de l'objet "CommandBarControls" a échoué
Voici le début de code (je ne mets pas l'intégralité de la macro, qui est assez longue):
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
38
39
40
41 Sub Créer_menu_supplémentaire() Dim cbMenu As CommandBarControl, cbSubMenu As CommandBarControl Supprimer_menu_supplémentaire ' delete the menu if it already exists Set cbMenu = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With cbMenu .Caption = "&Menu personnalisé" .Tag = "MyTag" .BeginGroup = False End With 'Set cbMenu = Application.CommandBars.FindControl(, 30007) ' Tools-menu If cbMenu Is Nothing Then Exit Sub ' didn't find the menu... ' add menuitem to menu 'With cbMenu.Controls.Add(msoControlButton, 1, , , True) '.OnAction = ThisWorkbook.Name & "!Macroname" 'End With ' add menuitem to menu 'With cbMenu.Controls.Add(msoControlButton, 1, , , True) '.OnAction = ThisWorkbook.Name & "!Macroname" 'End With 'ajoute un sous-menu Set cbSubMenu = cbMenu.Controls.Add(msoControlPopup, 1, , , True) With cbSubMenu .Caption = "&Mettre à jour le menu personnalisé" .Tag = "SubMenu1" .BeginGroup = True End With 'ajoute un sous-menu With cbSubMenu.Controls.Add(msoControlButton, 1, , , True) .Caption = "&Adapter les libellés du menu personnalisé " .OnAction = "MAJ_menu_Word" .Style = msoButtonIconAndCaption .FaceId = 50 .State = msoButtonUp End With
Partager