Bonjour à tous,
Je tente d'ajouter deux boutons à un onglet déjà existant dans le ruban Excel.
Pour ce faire, le code fourni par MS fonctionne plutôt bien lorsqu'il s'agit de l'ajouter à un onglet déjà existant par défaut :
Ce code permet d'ajouter, dans l'onglet Insertion, un groupe "Contoso" contenant un bouton "Contoso Button 1".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" xmlns:x="myNameSpace" > <ribbon> <tabs> <tab idMso="TabAddIns"> <group idQ="x:Contoso" label="Contoso"> <button id="C1" label="Contoso Button 1" size="large" imageMso="FileSave" onAction="c_action1" /> </group> </tab> </tabs> </ribbon> </customUI>
Par contre, lorsqu'on souhaite ajouter un bouton à un onglet personnalisé, déjà existant, l'ajout ne se fait pas!
Voici dans un premier temps, le code XML utilisé pour créer l'onglet personnalisé. Pour faciliter la discussion, disons qu'il est contenu dans un fichier nommé "ruban.xlam" :
Au chargement, l'onglet "Outil 26" est bien créé, avec un bouton dedans.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" xmlns:x="26"> <ribbon> <tabs> <tab idQ="Outils_Tab" label="Outils 26"> <group id="Maj_Grp" label="Mise à jour"> <button id="Maj_Btn" label="Mise à jour" imageMso="HappyFace" size="large" onAction="MajRuban" /> </group> </tab> </tabs> </ribbon> </customUI>
Puis le second code utilisé pour charger les deux autres boutons dans l'onglet "Outil 26". Pour faciliter la discussion, disons qu'il est contenu dans un fichier nommé "outil 26.xlam" :
Lorsqu'on charge séparément l'un ou l'autre fichier, l'onglet "Outils 26" n'apparait pas. Pour les faire apparaitre, le code XML a été modifié, "idQ" est passé en "id".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" xmlns:x="26"> <ribbon> <tabs> <tab idQ="Outils_Tab" label="Outils 26"> <group id="MSIP_Grp" label="MSIP"> <button id="MSIP_Btn" label="Lancer Stats MSIP" imageMso="HappyFace" size="large" onAction="test" /> <button id="Mail_Btn" label="Créer le mail" imageMso="HappyFace" size="large" onAction="test2" /> </group> </tab> </tabs> </ribbon> </customUI>
Mais du coup, lorsqu'on charge les deux fichiers, ce sont deux onglets "Outils 26" qui apparaissent, l'un à coté de l'autre... c'est pas top!
En fouillant un peu les discussions en anglais (et vi! ce genre de discussion n'existe pas encore en FR), il semblerait que deux paramètres doivent être présents dans le code XML de chacun des fichiers pour que l'ajout se fasse correctement : le fameux idQ et également l'entête
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:x="26"
Après avoir testé toutes les combinaisons possibles (le fichier ruban avec id /et le fichier outil 26 avec id/Q /
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:x="26"
, puis l'inverse, puis la même sans le
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:x="26"
etc), le résultat est toujours bancal : soit aucun onglet s'affiche, soit seul un bouton est présent dans l'onglet "Outils 26", laissant penser que le fichier "Outils 26.xlam" n' pas été chargé. Hors à chaque fois, les deux fichiers apparaissent bien chargés dans les compléments Excel (et dans C:\..\Microsoft\AddIns, les deux fichiers sont bien ouverts).
Code : Sélectionner tout - Visualiser dans une fenêtre à part xmlns:x="26"
Il doit y avoir une feinte qui m'échappe, un coup de main ne serait pas de trop svp
Etant novice en XML, si un pro de ce langage veut bien se lancer dans quelques explications, sera une bonne opportunité d'avoir quelques doc en français sur comment ajouter un bouton à onglet personnalisé
PS: pour les curieux qui se demandent pourquoi faire deux fichiers séparés, il s'agit de fournir des macros via des boutons dans un groupe personnalisé tout en facilitant le déploiement de celles-ci. Lorsqu'une nouvelle version de ces macros est prête ou lorsque de nouvelles arrivent, ce groupe personnalisé doit être mis à jour, en modifiant le code XML en conséquence.
Et plutôt que d'aller manuellement désactiver l'ancien fichier xlam, copier/remplacer le nouveau, puis réactiver ce nouveau complément, le plus simple c'est de faire un fichier qui va piloter ces trois actions.
Raison pour laquelle le fichier "Ruban.xlam" ne contient que le bouton mise à jour. Le fichier "Outil 26.xlam" contient, pour le moment, ces deux macro.
Partager