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