Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo
Sommaire > Les barres d'outils et les menus personnalisés > Le ruban, la barre d'outils accès rapide et le bouton Office 2007
        Où trouver une description du bouton Office et du ruban Excel 2007 ?
        Où se trouve l'onglet de gestion des macros, dans Excel 2007 ?
        Comment afficher les raccourcis clavier du ruban ?
        Comment se déplacer rapidement entre les différents onglets du ruban ?
        Est il possible d'afficher rapidement les boîtes de dialogues depuis le ruban Excel 2007 ?
        Comment masquer ou réafficher le ruban par macro ?
        Est-il possible de copier la barre d'outils Accès rapide Excel2007 ?
        Comment retrouver l'ID de chaque contrôle du ruban ?
        Est-il possible de déclencher une macro depuis la barre d'outils accès rapide ?
        Comment modifier les images des boutons placés dans la barre d'outils accès rapide ?
        Existe-t-il des outils pour faciliter la personnalisation du ruban ?
        Quels sont les noms xml des onglets standards, dans Excel2007 ?
        Est-il possible d'afficher un groupe standard dans un onglet personnel ?
        Comment ajouter un groupe dans un onglet standard ?
        Est-il possible d'afficher une commande standard dans un onglet personnel ?
        Comment masquer un onglet standard ?
        Comment désactiver une commande prédéfinie du ruban ?
        Comment gérer un Combobox dans un onglet personnalisé ?
        Comment activer de manière conditionnelle un bouton dans un onglet personnalisé ?
        Comment forcer le regroupement de tous mes compléments dans un même onglet ?

precedent    sommaire    suivant   


Où trouver une description du bouton Office et du ruban Excel 2007 ?
auteur : SilkyRoad
Microsoft met à disposition un support pour faciliter la prise en main du ruban:

Le guide de référence des commandes d'Excel 2003 et Excel 2007.

Cliquez sur le lien Démarrer le guide pour visualiser la présentation Flash. En sélectionnant les images de la barre d'outils Excel 2003, l'équivalence Excel 2007 s'affiche à l'écran.

Vous trouverez aussi quelques informations dans ce lien:
Le bouton Office et le ruban Excel 2007.



Où se trouve l'onglet de gestion des macros, dans Excel 2007 ?
auteur : SilkyRoad
Ouvrez l'onglet Développeur pour atteindre le menu de gestion des macros.


L'onglet Développeur est constitué de 3 groupes:

Le groupe Code:
     * Accéder à l'éditeur de macros (Alt+F11).
     * Afficher la classique boîte de dialogue qui liste les macros exécutables (Alt+F8).
     * Utiliser l'enregistreur de macros.
     * Gérer la sécurité des macros.

Le groupe Contrôles:
     * Insérer des contrôles Formulaires ou ActiveX.
     * Activer ou désactiver le mode création.
     * Afficher la fenêtre Propriétés.
     * Visualiser le code de la feuille active.

Le groupe XML:
     * Importer et exporter des fichiers xml.
     * Actualiser les données.
     * Mapper dans le classeur.


Si l'onglet Développeur n'apparaît pas dans le ruban:
     Cliquez sur le bouton Office,
     puis sur le bouton Options Excel.
     Cliquez sur le menu Standard.
     Cochez l'option Afficher l'onglet Développeur dans le ruban.
     Cliquez sur le bouton OK pour valider.


L'onglet Développeur peut être affiché ou masqué par macro:

Vba

Sub AfficherMasquer_OngletDeveloppeur()
    With Application
        If .ShowDevTools = False Then
            .ShowDevTools = True
            Else
            .ShowDevTools = False
        End If
    End With
End Sub




Comment afficher les raccourcis clavier du ruban ?
auteur : SilkyRoad
Utilisez sur la touche clavier Alt pour faire apparaître les raccourcis associés aux différents onglets du ruban, ainsi que les raccourcis des éléments de groupes affichés.
Appuyez de nouveau sur la touche Alt pour masquer les raccourcis.

Par exemple, pour créer un commentaire dans la cellule active:
Appuyez sur la touche Alt, pour afficher les raccourcis.
Appuyez sur la touche R pour atteindre l'onglet Révision.
Ensuite appuyez sur les touches C, puis N.



Comment se déplacer rapidement entre les différents onglets du ruban ?
auteur : SilkyRoad
Sélectionnez le ruban et utilisez la molette centrale de votre souris pour passer d'un onglet à l'autre.



Est il possible d'afficher rapidement les boîtes de dialogues depuis le ruban Excel 2007 ?
auteur : SilkyRoad
Certains groupes possèdent un petit icône dans l'angle inférieur droit. Cliquez dessus pour faire apparaître les boîtes de dialogues associées à ces groupes.





Comment masquer ou réafficher le ruban par macro ?
auteur : SilkyRoad
En attendant une solution plus élégante, ci joint une macro qui simule le raccourci clavier Ctrl+F1 (à lancer impérativement depuis la feuille de calcul, et pas depuis l'éditeur VBE).

Vba

Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
 
Sub Masquer_Afficher_Ruban()
    'Simule Ctrl+F1  lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
 
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
    
End Sub



Et si vous utilisez la macro depuis un CommandButton placé sur la feuille de calcul:

Vba
 
Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)
 
Private Sub CommandButton1_Click()
    'Simule Ctrl+F1  lancer depuis la feuille de calcul)
    Const VK_CONTROL = &H11
    Const VK_F1 = &H70
    Const KEYEVENTF_KEYUP = &H2
    
    Range("A1").Select
    DoEvents
    
    keybd_event VK_CONTROL, 0, 0, 0
    keybd_event VK_F1, 0, 0, 0
    keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0
    keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0
    
End Sub

Est-il possible de copier la barre d'outils Accès rapide Excel2007 ?
auteur : SilkyRoad
Si vous avez personnalisé votre barre d'outils Accès rapide (QAT ou Quick Access Toolbar), vous pouvez l'archiver ou la dupliquer sur un autre poste en copiant le fichier Excel.qat. Ce fichier est créé lorsque vous ajoutez ou supprimez des éléments dans la barre d'outils. Il est généralement stocké dans le répertoire:
C:\Documents and Settings\nom_utilisateur\Local Settings\Application Data\Microsoft\Office



Comment retrouver l'ID de chaque contrôle du ruban ?
auteur : SilkyRoad
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.



Est-il possible de déclencher une macro depuis la barre d'outils accès rapide ?
auteur : SilkyRoad
La réponse est Oui.
Faites un clic droit dans la barre d'outils accès rapide.
Choisissez "Personnaliser la barre d'outils accès rapide".
Sélectionnez "Macros" dans le menu déroulant "Choisir les commandes dans les catégories suivantes:".
Sélectionnez le nom de votre classeur dans le menu déroulant "Personnaliser la barre d'outils rapide", afin que le bouton ajouté soit spécifique à un classeur.
Sélectionnez votre macro dans la liste.
Cliquez sur le bouton "Ajouter".
Le nom de la macro est transféré dans la liste de droite. Vous pouvez personnaliser l'icône en sélectionnant le nom, puis en cliquant sur le bouton "Modifier".
Cliquez sur le bouton OK pour valider.
Vous pouvez désormais lancer votre macro en cliquant sur l'icône dans la barre d'outils accès rapide.



Comment modifier les images des boutons placés dans la barre d'outils accès rapide ?
auteur : SilkyRoad
Recherchez le fichier Excel.qat sur votre PC. il est généralement stocké dans ce répertoire:
C:\Documents and Settings\nom_utilisateur\Local Settings\Application Data\Microsoft\Office

Renommez le fichier en .txt, puis ouvre le.


Le fichier contient un code xml dans le style:

Xml

<mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2006/01/customui">
  <mso:ribbon>
  <mso:qat>
  <mso:sharedControls>
    <mso:control idQ="mso:FileOpen" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:FileSave" visible="true" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:FileSendAsAttachment" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:FilePrintQuick" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:FilePrintPreview" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:Spelling" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:Undo" visible="true" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:Redo" visible="true" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:SortAscendingExcel" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:SortDescendingExcel" visible="false" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:InkingStart" visible="true" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:PivotTableReport" visible="true" insertBeforeQ="mso:FileNewDefault" /> 
    <mso:control idQ="mso:FileNewDefault" visible="false" /> 
    <mso:control idQ="mso:CalculateNow" visible="true" /> 
    <mso:control idQ="mso:FileSaveAsWebPage" visible="true" /> 
    <mso:control idQ="mso:Camera" visible="true" /> 
    <mso:control idQ="mso:DataFormExcel" visible="true" /> 
  </mso:sharedControls>
  </mso:qat>
  </mso:ribbon>
</mso:customUI>



Par exemple, la ligne:

Xml

<mso:control idQ="mso:Camera" visible="true" />


correspond à une commande "appareil photo" placée dans la barre d'outils accès rapide.


Pour personnaliser l'image (Vous pouvez utiliser uniquement des images de la bibliothèque Office), ajoutez le paramètre imageMso dans le code xml.

Xml

<mso:control idQ="mso:Camera" imageMso="PrintPreviewClose" visible="true" />


PrintPreviewClose correspond à l'ID d'une autre commande, et dont l'image sera utilisée pour s'afficher sur le bouton.
Attention à bien respecter la casse.


Pour trouver facilement l'ID de chaque contrôle du ruban et les réutiliser dans la barre d'outils accès rapide:
Clique sur le bouton "Office".
Clique 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 tu passes le curseur sur les contrôles.



Existe-t-il des outils pour faciliter la personnalisation du ruban ?
auteur : SilkyRoad
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:

Xml

<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.

Vba

'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:

Vba

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.

Comment retrouver l'ID de chaque contrôle du ruban ?

La FAQ Access2007: Programmation du ruban



Quels sont les noms xml des onglets standards, dans Excel2007 ?
auteur : SilkyRoad
Vous pouvez en avoir besoin, pour par exemple spécifier la position d'un onglet personnalisé dans le ruban:

Xml

<!-- Va positionner l'onglet personnel après l'onglet Accueil (TabHome) -->
<tab id="OngletPerso" label="OngletPerso" insertAfterMso="TabHome" visible="true">
TabHome: onglet Accueil

TabInsert: onglet Insertion

TabPageLayoutExcel: onglet Mise en page

TabFormulas: onglet Formules

TabData: onglet Données

TabReview: onglet Révision

TabView: onglet Affichage

TabDeveloper: onglet Développeur

TabAddIns: onglet Compléments



Est-il possible d'afficher un groupe standard dans un onglet personnel ?
auteur : SilkyRoad
Ajoutez la référence du groupe standard en indiquant: idMso="NomDuGroupe".

L'exemple suivant ajoute le groupe "Bibliothèque de fonctions" dans un onglet nommé "OngletPerso".

Xml

  <tab id="OngletPerso" label="OngletPerso" visible="true">

    <!-- Ajoute la bibliothèque de fonctions -->
    <group idMso="GroupFunctionLibrary" />

    <group id="Essai" label="Essai CustomUI">
      <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" />
    </group>

  </tab>
Vous remarquez la différence de syntaxe utilisée pour faire référence à des groupes standards (idMso) et pour les groupes que vous créez (id).


Vous pouvez télécharger la liste de tous les noms de groupes et contrôles, sur le site Microsoft:
2007 Office System Document: Lists of Control IDs



Comment ajouter un groupe dans un onglet standard ?
auteur : SilkyRoad
L'exemple suivant ajoute un groupe personnel dans l'onglet Accueil.
Spécifiez le nom de l'onglet Accueil (tab idMso="TabHome") dans le fichier xml CustomUI.xml puis ajoutez les paramètres de création de ce nouveau groupe.

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
 
<tabs>
  <!-- onglet Accueil -->
  <tab idMso="TabHome"> 
    
    <!-- Ajoute un groupe -->  
    <group id="Essai" label="Format exposant">
       <!-- Crée un bouton: -->
       <!--onAction="ProcLancement" définit la macro qui va être déclenchée lorsque vous allez cliquer sur le bouton -->
 
       <button id="btLance01" label="Lancement" screentip="Format exposant."
       onAction="ProcLancement" 
       supertip="Utilisez ce bouton pour transformer la sélection en exposant." 
       size="normal" imageMso="ExponentiationSign" />
    </group>
  </tab> 
 
</tabs>
</ribbon>
</customUI>

Est-il possible d'afficher une commande standard dans un onglet personnel ?
auteur : SilkyRoad
Ajoutez la référence d'une commande standard en indiquant: button idMso="NomCommande".
L'exemple suivant ajoute le bouton "Insertion signe exposant" dans un groupe nommé "Format exposant". Ce groupe sera accessible depuis l'onglet Accueil.

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
 
<tabs>
  <!-- onglet Accueil -->
  <tab idMso="TabHome"> 
    <!-- Crée un groupe -->  
    <group id="Essai" label="Format exposant">
       <!-- Ajoute le bouton "Insertion signe exposant"  --> 
      <button idMso="ExponentiationSign" size="normal" />
    </group>
  </tab> 
 
</tabs>
</ribbon>
</customUI>



Vous remarquerez la syntaxe utilisée pour faire référence à des commandes standards: idMso.
Vous pouvez télécharger la liste de tous les noms de groupes et contrôles, sur le site Microsoft: 2007 Office System Document: Lists of Control IDs



Comment masquer un onglet standard ?
auteur : SilkyRoad
Indiquez la valeur False au paramètre Visible de l'onglet à masquer, dans le fichier customUI.xml.

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<!-- Indiquez True pour masquer tous les autres onglets standards-->
<ribbon startFromScratch="false">

<tabs>
  <!-- Masque l'onglet Révision -->
  <tab idMso="TabReview" visible="false"/>
</tabs>

</ribbon>
</customUI>

Comment désactiver une commande prédéfinie du ruban ?
auteur : SilkyRoad
Cet exemple désactive le bouton "Couleur de remplissage" en insérant des lignes suivantes dans le fichier CustomUI.xml.

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">

  <commands>
    <!-- Désactive le bouton "Couleur de remplissage" -->
    <command idMso="CellFillColorPicker" enabled="false" />
  </commands>

<ribbon startFromScratch="false">

</ribbon>
</customUI>


Les paramètres Commands doivent être en début de fichier, et avant la ligne ribbon startFromScratch="boolean".

Vous remarquerez que cette action désactive le bouton, à la fois dans l'onglet "Accueil" et dans la mini barre d'outils.



Comment gérer un Combobox dans un onglet personnalisé ?
auteur : SilkyRoad
Cet exemple :
Crée un onglet personnel dans le ruban.
Remplit une combobox du ruban personnalisé à partir de cellules de la feuille de calcul.
Identifie la sélection d'un élément dans la combobox.


Insérez ce code dans le fichier CustomUI.xml d'un classeur Excel2007, type xlsm:

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" >
<ribbon startFromScratch="false">
<tabs>

<tab id="OngletPerso" label="OngletPerso" visible="true">
   <group id="Projet01" label="Projet 01">

      <!-- getItemCount="NbItemCombo" va définir le nombre d'items dans la combobox. --> 
      <!-- getItemLabel="ComboLabel" permet d'alimenter la combobox. -->
      <!-- onChange="ChangeCombo1" gère l'évènement 'Change' dans la combobox. -->

      <comboBox id="Combo1" label="Choix : " getItemCount="NbItemCombo" getItemLabel="ComboLabel"
         onChange="ChangeCombo1" />
   </group>
</tab>

</tabs>
</ribbon>
</customUI>



Dans un module standard :

Vba

Option Explicit

'Callback for Combo1 getItemCount
Sub NbItemCombo(control As IRibbonControl, ByRef returnedVal)
    'Définit le nombre d'éléments dans la combobox
    returnedVal = 4
End Sub



'Callback for Combo1 getItemLabel
'Index est défini par la valeur saisie dans Sub NbItemCombo (=4)
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    
    'Alimente le Combobox à partir des données de la plage A1:A4
    returnedVal = Worksheets("Feuil1").Cells(index + 1, 1)
End Sub



'Callback for Combo1 onChange
Sub ChangeCombo1(control As IRibbonControl, text As String)
    'Renvoie l'élément sélectionné dans la combobox
    MsgBox text
End Sub

Comment activer de manière conditionnelle un bouton dans un onglet personnalisé ?
auteur : SilkyRoad
Dans cette procédure, le bouton (créé dans un onglet personnel) est activé uniquement si le contenu de la cellule A1 contient la valeur 1.

Insérez ce code dans le fichier CustomUI.xml :

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RubanCharge">
<!-- onLoad="RubanCharge" est déclenché lors du chargement du ruban personnalisé. -->
<ribbon startFromScratch="false">
<tabs>

<tab id="OngletPerso" label="OngletPerso" visible="true">
   <group id="Projet01" label="Projet 01">

      <!-- onAction="ProcLancement" définit la macro déclenchée lorsque vos cliquez sur le bouton. -->
      <!-- getEnabled="Bouton1_Enabled" gére la condition d'activation ou de désactivation. -->       
      <button id="Bouton1" label="Lancement" onAction="ProcLancement" size="normal" 
         imageMso="Repeat" getEnabled="Bouton1_Enabled"/> 

   </group>
</tab>

</tabs>
</ribbon>
</customUI>



Dans un module standard :

Vba

Option Explicit

Public MonRuban As IRibbonUI
Public boolResult As Boolean


'Callback for customUI.onLoad
'Est déclenché lors du chargement du ruban personnalisé.
Sub RubanCharge(ribbon As IRibbonUI)
    boolResult = False
    Set MonRuban = ribbon
End Sub


'Callback for Bouton1 onAction
'La procédure déclenchée lorsque vous cliquez sur le bouton.
Sub ProcLancement(control As IRibbonControl)
    MsgBox "ma procédure."
End Sub


'Callback for Bouton1 getEnabled
'Active ou désactive le bouton en fonction de la variable boolResult
Sub Bouton1_Enabled(control As IRibbonControl, ByRef returnedVal)
    returnedVal = boolResult
End Sub



Dans le module objet Worksheet de la feuille (où vous allez modifier le contenu de la cellule A1):

Vba

Option Explicit

'Evenement Change dans la feuille de calcul.
Private Sub Worksheet_Change(ByVal Target As Range)
    'Vérifie si la cellule A1 est modifiée et si la cellule contient la valeur 1.
    If Target.Address = "$A$1" And Target = 1 Then
        boolResult = True
    Else
        boolResult = False
    End If
        
    'Rafraichit le bouton personnalisé
    If Not MonRuban Is Nothing Then MonRuban.InvalidateControl "Bouton1"
End Sub

Comment forcer le regroupement de tous mes compléments dans un même onglet ?
auteur : SilkyRoad
Si vous avez créé plusieurs compléments .xlam dans Excel 2007 et que chacun d'entre eux contient un onglet personnel qui s'affiche dans le ruban, vous pouvez être intéressé de les regrouper dans un même onglet, lorsqu'ils sont ouverts simultanément.

Pour réaliser cette action, le fichier CustomUI.xml de chaque complément doit contenir certaines informations identiques:
     Un nom identique (xmls:A="Mes macros complémentaires")
     Un qualificateur identique (idQ="A:CibleAddIn")
     L'attribut idQ (qualified ID) permet de spécifier un élément commun à plusieurs classeurs.

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
			xmlns:A="Mes macros complémentaires">

<ribbon startFromScratch="false">
  <tabs>

    <tab idQ="A:CibleAddIn" label="Mes macros complémentaires" visible="true">



    </tab>

  </tabs>
</ribbon>
</customUI>



Vous pouvez ensuite ajouter les groupes et vos options personnelles dans chaque classeur. Par exemple:

Xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
			xmlns:A="Mes macros complémentaires">

<ribbon startFromScratch="false">
  <tabs>

    <tab idQ="A:CibleAddIn" label="Mes macros complémentaires" visible="true">
      <group id="Projet01" label="Projet 01">

        <button id="btnLance01" label="Lancement 01"
         onAction="ProcLancement01" 
         size="normal" imageMso="Repeat" />

     </group>
    </tab>

  </tabs>
</ribbon>
</customUI>



Désormais lorsque vous ouvrez un complément contenant l'attribut (idQ) commun, un nouveau groupe est ajouté dans l'onglet "Mes macros complémentaires".



precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com