Personnalisation du ruban sous Excel 2007-2010

Exemple de menu personnalisé

Avant de vous proposer différents exemples, je voudrais citer quelques sources qui m'ont aidé ou inspiré pour réaliser ce document.

La personnalisation du ruban sous Excel 2007
Ron's Excel Tips

Je vous encourage à parcourir ces pages pour plus de détails sur le Ribbon, me contentant uniquement de
vous aider pour la création d'un onglet personnalisé.

C'est sans prétention que je vais vous proposer différents exemples afin de vous permettre d'être assez
rapidement autonome pour créer un onglet personnalisé dans le ruban d'Excel.
Dans cette rubrique, je ne traiterai pas tous les contrôles, me bornant à vous présenter les plus utiles pour vous.

Si vous désirez approfondir vos connaissances sur le ruban, il existe de nombreuses publications sur Internet qui traitent
de ce sujet.

 

Les rubriques du document

Pour créer un ruban dans un fichier Excel 2007 ou 2010, il faut impérativement que le fichier Excel
soit au format XLSM (feuille de calcul prenant en charges les macros).

Le logiciel CustomUI Editor

Pour écrire le code XML correspondant à cet onglet il vous faudra un logiciel Office Custom UI Editor (gratuit)).
Une autre méthode existe mais assez compliquée, donc je n'en parlerai pas.

L'interface du logiciel Custom UI Editor

L'interface de Custom UI Editor

L'option Insert du menu

Cette option possède 4 items:
  1. Office 2010 Custom UI Part --> Pour insèrer du code XML pour Excel 2010
  2. Office 2007 Custom UI Part --> Pour insèrer du code XML pour Excel 2007
  3. Icons... --> Pour insèrer des icônes personnalisées
  4. Sample XML ---> Pour insérer du code XML pré-définies (personnellement je n'utilise pas)

L'option Insert

 

Personnalisation du ruban

Il existe un certain nombre d'options de personnalisation du ruban.

Quelques exemples...

Dans la première ligne du code XML, il suffit d'ajouter l'attribut onLoad="RibbonOnLoad"

Dans un module standard du classeur concerné il faut également ajouter le code VBA suivant:

Création d'un onglet personnalisé en XML (Office 2007)

 

Exemple de menu personnalisé

Votre fichier Excel (xlsm) étant terminé, nous allons pouvoir créer le menu personnalisé.
Au prélable, fermer le classeur xlsm (le fichier xml ne pourra pas être sauvegardé si le classeur est ouvert).

Après avoir choisi dans le menu Insert l'option Office 2007 Custom UI Part, à gauche dans l'arborescence, apparaît le libellé custom UI.xml
Dans la fenêtre de droite, nous allons écrire le code XML.

Quelque soit le menu que vous souhaitez créer, vous avez un code XML prédéfini que vous devez inclure.

Le code XML de base pour Office 2007

L'exemple ci-dessus correspond à Excel 2007.
L'espace de noms (Namespace) étant déterminé par l'attribut xmlns de la balise customUI,
il faudra pour Excel 2010, modifier cet attribut comme suit:

Le code XML de base pour Office 2010

Un ruban Office 2007 fonctionnera sous Office 2010 mais pas dans le cas inverse.

Toutefois vous pouvez dans votre fichier XML, faire cohabiter les deux versions.

Espace de noms pour Office 2007 et 2010

 

  Avant de passer à la création de contrôles, il faut faire attention car chaque identificateur id doit
  impérativement être unique dans le fichier xml.

Exemples:
Les groupes

Chaque groupe est défini par la balise group. Ils apparaissent à l'intérieur de l'onglet, dans
le même ordre que vous les avez définis dans le fichier de personnalisation.

Exemple de code XML pour 2 groupes

 

La création d'un bouton par groupe

 

Exemple de bouton avec attribut size=

On peut donner 2 tailles (size) au contrôle Button, large ou normal.

Le code XML pour un Button avec l'attribut size défini en large.

Le code pour le contrôle Button

 

La création de 3 boutons par groupe

 

Exemple avec 3 boutons par groupe

 

On peut donner 2 tailles (size) au contrôle Button, large ou normal.

Le code XML pour 3 Button avec l'attribut size défini en large.

Trois autres attributs du code XML.

 
Les menus

Le contrôle menu créé un menu déroulant constitué de boutons ou d'autres menus imbriqués sous forme d'arborescence.

Avec un Button dont l'attribut size="large"

Exemple de code XML pour la création d'un menu

On peut améliorer la présentation du menu en insérant des lignes de séparation avec l'attribut menuSeparator

Exemple de code XML pour la création d'un menu avec séparateurs

Avec un Button dont l'attribut size="normal"

Dans ce cas de figure, on peut mettre trois menus horizontaux donc un gain de place appréciable.

 

Les images des contrôles

 

La plupart des contrôles (button, comboBox, dropDown, menu, splitButton, toggleButton) autorisent
l'association d'image (équivalent des faceIds d'Excel 2003).
Plusieurs méthodes sont disponibles pour personnaliser votre ruban.

La solution la plus simple est d'utiliser le fichier Office2007IconsGallery.xlsm qui contient
un grand nombre d'images.

Il existe 3 attributs pour définir l'image d'un contrôle.


Après avoir ouvert le fichier Office2007IconsGallery.xlsm dans l'onglet Développeur, vous sélectionnez l'image de votre choix.
Cette image comporte un nom (imageMso=NewMeetingWithContact) et, elle est affichée en 2 formats (normal et large).

Avec l'attribut onAction, vous attribuez une procédure VBA à ce bouton.

Le code XML

 

  • idMso --> Identificateur des contrôles prédéfinis.
  • Le code XML

    Avec l'attribut idMso, il n'y a pas d'attribut onAction car ce sont des identificateurs prédéfinis.
    Dans notre exemple, en cliquant sur le bouton prédéfini, on affichera directement la calculatrice.

    Exemple de quelques idMso prédéfinis: FileSave, FileSaveAs ou FilePrint

     

     

    Togglebutton

    Le ToggleButton est un bouton à bascule, il change d'aspect lorsque vous cliquez dessus.
    Il permet de renvoyer deux valeurs:
       Vrai (Lorsque le bouton est activé)
       Faux (Lorsque le bouton est désactivé)

    L'argument pressed prend la valeur "Vrai" quand le TogleButton est activé et "Faux" lorsque vous recliquez sur le bouton.

    Le code VBA associé

        

    Dans l'image ci-dessus, le clic sur le bouton Administration renvoie le message suivant :

        

    Un exemple concret :

       - Afficher ou masquer les onglets du classeur

    Retour en haut de la page

     

    A suivre...