Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Initialisation Combobox dans le Ruban Excel 2007

3 réponses
Avatar
Pipouneaufles
Bonjour,

J'utilise Excel 2007 pour gérer les comptes d'une association.

J'ai ajouté un un onglet "Banque" dans le Ruban en créant un fichier XLM
customUI.
Dans l'onglet "Banque" j'ai créé plusieurs boutons qui fonctionnent
parfaitement.
J'ai aussi ajouté une Combobox qui me permet de passer d'une compte à
l'autre.
Mon ruban fonctionne parfaitement et je passe d'un compte à l'autre en
cliquant la Combo.
Mon problème est plus esthétique que fonctionnel, au chargement du fichier
la Combobox est vide
et j'aimerais qu'elle affiche dès l'ouverture le 1er item qui est le compte
courant.
Tout ce que j'essaie pour initaliser le paramètre "Text" ou "Value" de la
Combo dans le fichier XLM
ne fonctionne pas.
Quelqu'un sait-il comment initaliser une Combobox dans le fichier customUI
pour qu'elle affiche un contenu
avant qu'on clique dessus dans le ruban ?

Merci d'avance à tous pour votre contribution.
Piouneaufles

Info : pour l'exemple, je n'ai laissé qu'un bouton avec la Combo dans
l'onglet Banque

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<!-- création de l'onglet Banque en 1ere position du
ruban-->
<tab id="bankTab" label="Banque" insertBeforeMso="TabHome"
visible="true">
<!-- création du 1er groupe avec le 1er bouton -->
<group id="newSaisie" label=" Saisir opération ">
<button id="btnewSaisie" label="Nouvelle saisie"
imageMso="CreateQueryFromWizard" size="large" onAction="EntrerUneOperation"
/>
</group>
<!-- création de la Combobox -->
<group id="comptes" label=" Sélection du compte ">
<comboBox id="ComboSelCpt" label=" " onChange="ChangeComboSelCpt"
screentip="Cliquez sur la flèche pour sélectionner un autre compte" >
<item id="it1" label="Compte Courant" />
<item id="it2" label="Carte Visa" />
<item id="it3" label="LDD" />
<item id="it4" label="Compte Zone 1" />
<item id="it5" label="Compte Zone 2" />
</comboBox>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
--

3 réponses

Avatar
michdenis
Bonjour,

Comme les suggestions se font rares, à tout hasard, je te propose ceci :

En utilisant une macro "Auto_Open" dans un module standard, tu appelles
ce type de macro en adaptant cette section : Base.Cells(index + 1, 1)
Dans cette expression "Base" représente la propriété "Name" de la feuille
visible dans l'éditeur de code.

'---------------------------
'Callback for Combo1 getItemLabel
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
If control.ID = "Combo1" Then returnedVal = Base.Cells(index + 1, 1)
End Sub
'---------------------------



"Pipouneaufles" a écrit dans le message de groupe de discussion :

Bonjour,

J'utilise Excel 2007 pour gérer les comptes d'une association.

J'ai ajouté un un onglet "Banque" dans le Ruban en créant un fichier XLM
customUI.
Dans l'onglet "Banque" j'ai créé plusieurs boutons qui fonctionnent
parfaitement.
J'ai aussi ajouté une Combobox qui me permet de passer d'une compte à
l'autre.
Mon ruban fonctionne parfaitement et je passe d'un compte à l'autre en
cliquant la Combo.
Mon problème est plus esthétique que fonctionnel, au chargement du fichier
la Combobox est vide
et j'aimerais qu'elle affiche dès l'ouverture le 1er item qui est le compte
courant.
Tout ce que j'essaie pour initaliser le paramètre "Text" ou "Value" de la
Combo dans le fichier XLM
ne fonctionne pas.
Quelqu'un sait-il comment initaliser une Combobox dans le fichier customUI
pour qu'elle affiche un contenu
avant qu'on clique dessus dans le ruban ?

Merci d'avance à tous pour votre contribution.
Piouneaufles

Info : pour l'exemple, je n'ai laissé qu'un bouton avec la Combo dans
l'onglet Banque

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<!-- création de l'onglet Banque en 1ere position du
ruban-->
<tab id="bankTab" label="Banque" insertBeforeMso="TabHome"
visible="true">
<!-- création du 1er groupe avec le 1er bouton -->
<group id="newSaisie" label=" Saisir opération ">
<button id="btnewSaisie" label="Nouvelle saisie"
imageMso="CreateQueryFromWizard" size="large" onAction="EntrerUneOperation"
/>
</group>
<!-- création de la Combobox -->
<group id="comptes" label=" Sélection du compte ">
<comboBox id="ComboSelCpt" label=" " onChange="ChangeComboSelCpt"
screentip="Cliquez sur la flèche pour sélectionner un autre compte" >
<item id="it1" label="Compte Courant" />
<item id="it2" label="Carte Visa" />
<item id="it3" label="LDD" />
<item id="it4" label="Compte Zone 1" />
<item id="it5" label="Compte Zone 2" />
</comboBox>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
--
Avatar
michdenis
En utilisant ceci au lieu de ce qui est proposé.
If control.ID = "Combo1" Then returnedVal = "Carte Visa"

'---------------------------
'Callback for Combo1 getItemLabel
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
If control.ID = "Combo1" Then returnedVal = Base.Cells(index + 1, 1)
End Sub
'---------------------------
Avatar
Pipouneaufles
Bonjour,

Je te remercie pour ta proposition que j'ai adapté à mon problème en
utilisant getText="Ma MacroGetText" dans la déclaration de la Combo de mon
fichier XML et
ça marche parfaitemnent, la Combo s'initialise dès le lancement de mon
fichier avec la valeur que je donne dans MaMacroGetText.

Un grand merci pour le conseil.
Pipouneaufles.

"michdenis" a écrit dans le message de
news:
En utilisant ceci au lieu de ce qui est proposé.
If control.ID = "Combo1" Then returnedVal = "Carte Visa"

'---------------------------
'Callback for Combo1 getItemLabel
Sub ComboLabel(control As IRibbonControl, index As Integer, ByRef
returnedVal)
If control.ID = "Combo1" Then returnedVal = Base.Cells(index + 1, 1)
End Sub
'---------------------------