Oui, vous pouvez par exemple installer Custom UI Editor Tool afin de créer et modifier les fichiers customUI.xml (customUI.xml contient toutes les informations permettant la personnalisation du ruban, dans les classeurs enregistrés au nouveau format Office OpenXML).




Nota:
Vous devez aussi disposer du pack de redistribution .Net framework 2.
(Un lien de téléchargement est automatiquement proposé lors de l'installation de l'utilitaire de personnalisation).


Par exemple, après avoir installé Custom UI Editor Tool, créez un nouveau classeur et enregistrez le au format xlsm (prenant en charge les macros).
Fermez le classeur (le fichier xml ne pourra pas être sauvegardé si le classeur est ouvert).
Lancez Custom UI Editor.
Utilisez le menu File/Open.
Recherchez votre classeur Excel sur le PC.
Cliquez sur le bouton Ouvrir.
Une page blanche s'affiche. Si votre classeur contenait déjà un ruban personnalisé, le contenu xml s'affichera à l'écran.
Collez le code xml suivant dans la fenêtre de l'éditeur:

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
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<!-- Indiquez True pour masquer tous les autres onglets standards-->
<ribbon startFromScratch="false">
 
<tabs>
  <!-- Crée un onglet personnalisé: -->
  <!-- L'onglet va se positionner automatiquement à la fin du ruban. -->
  <!-- Utilisez insertAfterMso="NomOngletPrédéfini" pour préciser l'emplacement de l'onglet -->
  <tab id="OngletPerso" label="OngletPerso" visible="true">
 
    <!-- Crée un groupe -->  
    <group id="Essai" label="Essai CustomUI">
 
      <!-- Crée un bouton: -->
      <!--onAction="ProcLancement" définit la macro qui va être déclenchée lorsque vous allez cliquer sur le bouton -->
 
      <!--imageMso="StartAfterPrevious" définit une image de la galerie Office qui va s'afficher sur le bouton. -->
	<!--(consultez la FAQ Excel "Comment retrouver l'ID de chaque contrôle du ruban ?" pour plus de détails). -->
      <!-- Nota: il est aussi possible d'ajouter des images externes pour personnaliser les boutons -->
      <button id="btLance01" label="Lancement" screentip="Déclenche la procédure."
      onAction="ProcLancement" 
      supertip="Utilisez ce bouton pour Lancer la macro." 
      size="large" imageMso="StartAfterPrevious" />
 
      <!-- Crée un deuxième bouton -->	
      <button id="btAide01" label="Aide" screentip="Consultez l'aide."
      onAction="OuvertureAide" size="large" 
      supertip="Consultez les meilleurs cours et tutoriels Office." 
      imageMso="FunctionsLogicalInsertGallery" 
      tag="http://office.developpez.com/" />
 
    </group>
  </tab>
 
</tabs>
</ribbon>
</customUI>




Cliquez sur le bouton Generate CallBacks. Cette action va créer une macro pour chaque action (onAction) définie dans votre xml.

Code :Sélectionner tout -Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
'Callback for btLance01 onAction
Sub ProcLancement(control as IRibbonControl)
End Sub
 
'Callback for btAide01 onAction
Sub OuvertureAide(control as IRibbonControl)
End Sub



Faites un Copier (Ctrl+C) des CallBacks pour les placer dans le presse papiers. Vous ajouterez ces macros ultérieurement dans un module standard de votre classeur.

Revenez sur l'onglet CustomUI.
Enregistrez les modifications xml.
Ouvrez votre classeur Excel.
Vous constatez qu'un nouvel onglet apparait dans le ruban.





Pour terminer, vous allez ouvrir l'éditeur de macros (Alt+F11).
Insérez un module standard.
Collez les CallBacks précédemment créés.
Il ne vous reste plus qu'à rédiger vos macros. Celles ci seront associées à l'évènement Clic sur les boutons du ruban.
Par exemple:

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
Option Explicit
 
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
 
 
'Callback for btLance01 onAction
Sub ProcLancement(control As IRibbonControl)
    MsgBox "Opération 'Personnaliser le ruban' réussie!"
End Sub
 
 
'Callback for btAide01 onAction
'Va ouvrir le lien indiqué dans le Tag du bouton (http://office.developpez.com/)
Sub OuvertureAide(control As IRibbonControl)
    ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, 0
End Sub



Pour aller plus loin dans la personnalisation du ruban, consultez le tutoriel de Christophe Warin: Création de rubans personnalisés sous Microsoft Access 2007.


La FAQ Access2007: Programmation du ruban


Comment retrouver l'ID de chaque contrôle du ruban ?
Cliquez sur le bouton "Office".
Cliquez sur le bouton "Options Excel".
Menu "Personnaliser".
Le volet Personnalisation permet d'accéder à tous les contrôles (visibles et masqués).
Les ID apparaissent dans une info-bulle lorsque vous passez le curseur sur les contrôles.