
| 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
|
|
| 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.
|
| auteur : SilkyRoad |
Sélectionnez le ruban et utilisez la molette centrale de votre souris pour passer d'un onglet à l'autre.
|
| 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.
|
| 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 ()
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 ()
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
|
|
| 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
|
| 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.
|
| 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.
|
| 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.
|
| 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
< !- - Utilisez insertAfterMso= " NomOngletPrédéfini " pour préciser l
< 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
< !- - (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
< 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 |
Sub ProcLancement (control as IRibbonControl)
End Sub
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
Sub ProcLancement (control As IRibbonControl)
MsgBox " Opération 'Personnaliser le ruban' réussie! "
End Sub
Sub OuvertureAide (control As IRibbonControl)
ShellExecute 0 & , vbNullString , control. Tag , vbNullString , vbNullString , 0
End Sub
|
|
| 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
< 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
|
| 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
|
| 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>
|
|
| 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>
|
|
| 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
< tab idMso= " TabReview " visible= " false " / >
< / tabs>
< / ribbon>
< / customUI>
|
|
| 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.
|
| 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
< !- - getItemLabel= " ComboLabel " permet d
< !- - onChange= " ChangeCombo1 " gère l
< comboBox id= " Combo1 " label= " Choix : " getItemCount= " NbItemCombo " getItemLabel= " ComboLabel "
onChange= " ChangeCombo1 " / >
< / group>
< / tab>
< / tabs>
< / ribbon>
< / customUI>
|
Dans un module standard :
Vba |
Option Explicit
Sub NbItemCombo (control As IRibbonControl, ByRef returnedVal)
returnedVal = 4
End Sub
Sub ComboLabel (control As IRibbonControl, index As Integer, ByRef returnedVal)
returnedVal = Worksheets (" Feuil1 " ). Cells (index + 1 , 1 )
End Sub
Sub ChangeCombo1 (control As IRibbonControl, text As String )
MsgBox text
End Sub
|
|
| 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
< 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
Sub RubanCharge (ribbon As IRibbonUI)
boolResult = False
Set MonRuban = ribbon
End Sub
Sub ProcLancement (control As IRibbonControl)
MsgBox " ma procédure. "
End Sub
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
Private Sub Worksheet_Change (ByVal Target As Range)
If Target. Address = " $A$1 " And Target = 1 Then
boolResult = True
Else
boolResult = False
End If
If Not MonRuban Is Nothing Then MonRuban. InvalidateControl " Bouton1 "
End Sub
|
|
| 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".
|
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.
|