Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/11/2007, 21h56   #1
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
Par défaut [Excel2007] Gérer un Combobox dans un ruban personnalisé

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 :
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 :
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
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 10h21   #2
Membre émérite
 
Avatar de fred65200
 
Inscription : septembre 2007
Messages : 901
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : septembre 2007
Messages : 901
Points : 994
Points : 994
bonjour silkyroad

j'ai une combobox dans le ruban alimentée par une liste de classeur à ouvrir.

Lorsque je ferme le classeur, la combobox se réinitialise et je peux l'utiliser pour rouvrir le même classeur.

Par contre si j'ouvre deux classeurs et passe de l'un à l'autre, si le premier classeur fermé n'est pas celui affiché dans la combobox, elle n'est pas réinitialisée.

Auriez vous une piste pour parer à ce désagrément?

D'avance merci
fred
__________________
fred65200
Pensez à cliquer sur
fred65200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 07h32   #3
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour Fred

je suis désolé mais je n'ai pas compris ta question.
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 11h50   #4
Membre émérite
 
Avatar de fred65200
 
Inscription : septembre 2007
Messages : 901
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : septembre 2007
Messages : 901
Points : 994
Points : 994
bonjour,
Citation:
Envoyé par SilkyRoad Voir le message
bonjour Fred

je suis désolé mais je n'ai pas compris ta question.
en effet après relecture, ce n'était pas très clair, j'ai donc voulu détailler la façon de procéder et me suis rendu compte que je voulais utiliser la ComboBox pour activer un classeur déjà ouvert lorsque j'étais passé à une autre fenêtre.

Je n'ai pas codé pour cela donc je vais m'y attaquer.

Désolé pour cette intervention qui n'avait pas lieu d'être

Cordialement
fred
__________________
fred65200
Pensez à cliquer sur
fred65200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web