Bonjour à tous,
J'ai un petit problème, et je ne comprends pas pourquoi cela ne fonctionne pas.
Ce que je désire faire c'est installer une barre d'outil sur word, avec un bouton qui appelle une macro. J'aimerais installer cette barre d'outil sur toutes les applications du pack office.
J'ai déjà réussit sur Excel.
Mais sur Word cela ne fonctionne pas ...
Voici le code que j'utilise dans Excel :
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 Public Sub Lauch_Gen_Ref() Shell ThisWorkbook.Path & "\ref_Gen.exe """ & ActiveWorkbook.Name & """", vbNormalFocus End Sub Sub SupprimeMenu() On Error Resume Next CommandBars("Outils_Referencement").Delete End Sub Sub CréationMenu() Dim NomMenu As String NomMenu = "Outils_Referencement" NomCompletFichierMacros = ThisWorkbook.FullName On Error GoTo Sortie Set cbar1 = CommandBars.Add(Name:=NomMenu, Position:=msoBarTop) cbar1.Visible = True With CommandBars(NomMenu).Controls.Add(msoControlPopup) .Caption = NomMenu ' Menu 1 With .Controls.Add(msoControlButton) .Caption = "Générer une référence" .OnAction = NomCompletFichierMacros & "!Lauch_Gen_Ref" End With End With Sortie: End Sub
Sous Word :
Plusieurs problèmes :
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 Public Sub Lauch_Gen_Ref() Shell ThisDocument.Path & "\ref_Gen.exe """ & ActiveDocument.Name & """", vbNormalFocus End Sub Sub SupprimeMenu() On Error Resume Next CommandBars("Outils_Referencement").Delete End Sub Sub CréationMenu() Dim NomMenu As String NomMenu = "Outils_Referencement" NomCompletFichierMacros = ThisDocument.FullName On Error GoTo Sortie Set cbar1 = CommandBars.Add(Name:=NomMenu, Position:=msoBarTop) cbar1.Visible = True With CommandBars(NomMenu).Controls.Add(msoControlPopup) .Caption = NomMenu ' Menu 1 With .Controls.Add(msoControlButton) .Caption = "Générer une référence" .OnAction = "Lauch_Gen_Ref" End With End With Sortie: End Sub
Le premier est que la barre d'outil n'est installée que sur le document Word qui contient la macro. Et ce n'est pas du tout ce que je veux. J'aimerais que cette barre d'outil soit présente sur tout les documents Word que l'on créé/ouvre.
Deuxième problème, l'appel à la macro ne fonctionne pas si on garde la même syntaxe que sous Excel. Si à la propriété OnAction on ne fait référence directement qu'à la macro, là cela fonctionne mais dès que l'on essaye de le lancer depuis un autre document il ne trouve plus la macro.
Sous Excel Tout fonctionne bien ....
Au pire si il est possible d'exécuter une application externe en cliquant sur le bouton de mon menu personnalisé je suis aussi preneur.
Merci d'avance !
Partager