Créez un nouveau classeur dans Excel 2007 et enregistrez-le sous forme d’un Classeur Excel (prenant en charge les macros)(*.xlsm) avec l’extension .xlsm . Le suffixe m. signifie que le classeur contient des macros. Appelez le « testruban.xlsm » (par exemple) Dans l’Editeur Visual Basic (Alt + F11) insérez un nouveau module et collez ce code : Sub test(ByVal control As IRibbonControl) MsgBox (« Bonjour ») End Sub Enregistrez et fermez le classeur. Télécharger et installez l’outil « Editeur de Ruban » Microsoft Office 2007 Custom UI Editor que vous trouverez ici (Un excellent outil pour ne pas manipuler directement le fichier XML. http://dj.joss.free.fr/download/CustomUIEditorSetup.zip Lancez « Custom UI Editor » l’éditeur de Ruban Dans l’éditeur ouvrez votre classeur « testruban.xlsm » Copiez le code xml ci-dessous et collez le dans l’onglet Custom UI <customUI xmlns=« http://schemas.microsoft.com/office/2006/01/customui« > <ribbon startFromScratch=« false« > <tabs> <tab id = « Perso« label=« Perso« insertAfterMso=« TabView« > <group id=« Message« label=« Message« > <button id=« Coucou« label=« Coucou« onAction=« test« size=« large« imageMso=« HappyFace« /> </group> </tab> </tabs> </ribbon> </customUI> Le nom de la macro à exécuter se trouve apres la balise onAction onAction=« lenomdelamacro » Il est tout à fait possible d’exécuter une macro placée dans le « ThisWorkbook » onAction=« ThisWorkbook.lenomdelamacro » (Attention au point apres le ThisWorkbook) Enregistrez et fermez. Dans excel 2007 ouvrez le fichier testruban.xlsm Vous trouverez un nouvel onglet appelé Perso après l’onglet Affichage. Cliquez et admirez le résultat. Cliquez sur le bouton et le message « Bonjour » s’affiche. Comment déplacer l’onglet ? C’est la balise « insertAfterMso » du code XML qui détermine la position de l’onglet dans le ruban. <tab id = « Perso« label=« Perso« insertAfterMso=« TabView« > Ici l’onglet est placé après celui qui se nomme « Affichage » (TabView) Pour le placer à la fin il suffit d’indiquer « insertAfterMso= »TabAddIns » » (Compléments, le dernier onglet) Ce qui donne : <tab id = « Perso« label=« Perso« insertAfterMso=« TabAddins« > Liste des « idTab » Accueil =>TabHome Insertion=>TabInsert Mise en page=>TabPageLayoutExcel Formules=>TabFormulas Donnees=>TabData Revision=>TabReview Affichage=>TabView Developpeur=>TabDeveloper Complements=>TabAddIns Une image Office Icon Gallery sur le bouton C’est la balise « imageMso » du code XML qui détermine l’image (Icône) imageMso=« HappyFace« <button id=« Coucou« label=« Coucou« onAction=« test« size=« large« imageMso=« HappyFace« /> Pour avoir les noms des différentes images (les icônes) téléchargez le classeur « Office2007IconsGallery.xlsm » http://dj.joss.free.fr/download/Office2007IconsGallery.xlsm Cliquez sur l’onglet « Développeur » et vous avez toutes les « Gallery » à votre disposition. En passant la souris sur les icônes une info bulle vous donne le nom de l’icône choisie Une image perso sur le bouton Dans l’éditeur ouvrez votre classeur « testruban.xlsm » Cliquez sur le bouton « Insert Icons » et dans la boîte qui s’affiche sélectionnez votre image Cliquez sur Ouvrir et l’image sélectionnée apparait alors dans une nouvelle fenêtre à droite. Dans l’exemple ci-dessous l’image est « noir.jpg » Le format de l’image peut être : gif, jpeg, png, ico etc… (Attention à ne pas choisir une image trop « lourde ») Modifiez la balise « imageMso » du code XML par celle çi « image » Et indiquez le nom de l’image que vous venez d’insérer sans l’extension. image=« noir » Enregistrez et fermez. Un lien hypertexte sur le bouton Il est tout à fait possible de mettre un lien hypertexte sur un bouton Par exemple pour ouvrir une page web ou bien simplement ouvrir un fichier d’aide Dans l’Editeur Visual Basic (Alt + F11) insérez un nouveau module et collez ce code : Private Declare Function ShellExecute Lib « shell32.dll » Alias « ShellExecuteA » _ (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpfile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Public Sub OpenBrowser(ByVal control As IRibbonControl) ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, SW_SHOWNORMAL End Sub ‘La macro lancera le lien indiqué après la balise « tag » du code XML (Tag= »le lien ») Dans l’éditeur ouvrez votre classeur « testruban.xlsm » Ajouter le code ci-dessous après la balise </group> Ce qui ajoutera un nouveau groupe appelé « Visitez mon site Web » avec un bouton « Site VBAXL » N’oubliez pas d’ajouter l’image pour le bouton en cliquant sur « Insert Icons » <group id=« Services« label=« Visitez mon site Web« > <button id=« VBAXL« label=« Site VBAXL« onAction=« OpenBrowser« size=« large« image=« vbaxl« tag=« http://dj.joss.free.fr« /> </group> Et voila le résultat testruban.zip 12 ko Téléchargez testruban.zip Quelques astuces … Il est très facile de supprimer toute l’interface utilisateur prédéfinie d’excel. Pour cela définissez StartFromScratch = »true » dans la balise <ribbon> principale <customUI xmlns= »http://schemas.microsoft.com/office/2006/01/customui« > <ribbon startFromScratch=« true« > Les principaux onglets prédéfinis, la barre d’outils Accès rapide et les commandes du menu à l’exception de Nouveau, Ouvrir et Enregistrer seront masqués. Comment ne masquer qu’un seul onglet ? L’onglet « Accueil » par exemple. Il suffit de placer ce code <tab idMso= »TabHome » visible= »false »/> après la balise <tabs> <tabs> <tab idMso=« TabHome« visible=« false« /> Comment ajouter l’onglet Font (Police) à votre barre perso ? En le plaçant à la fin de votre barre par exemple. Il suffit de placer ce code <group idMso= »GroupFont » /> avant la balise </tab> <group idMso=« GroupFont« /> </tab>