IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Créer une liste déroulante non modifiable dans un ruban [AC-2007]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 24
    Points
    24
    Par défaut Créer une liste déroulante non modifiable dans un ruban
    Bonjour,

    Malgré de multiples recherches, je ne parviens pas à comprendre comment fonctionne une liste dropDown dans un ruban.

    Le but : avoir une action lorsqu'on clique sur un élément d'une liste déroulante non modifiable dans un ruban.
    (Exemple : clic sur argument 1 = ouverture formulaire 1, clic sur argument 2 = ouverture formulaire 2)

    Fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    	<ribbon startFromScratch="true">
    		<tabs>
    			<tab id="Aide" label="?">
    				<group id="AideGroup1" label="Argumentaires">			
    				<dropDown id="AideDropDown1" label="Argumentaires :" onAction="OnActionDropDown">
    					<item id="Argumentaire 1" label="1er argumentaire"/>
    					<item id="Argumentaire 2" label="2e argumentaire"/>
    				</dropDown>
    				</group>
    			</tab>
    		</tabs>
    	</ribbon>
    </customUI>
    Le fichier .xml el la BDD en fichier joint.

    En revanche, je n'ai pas compris comment se déroule la suite.
    Pour les boutons, faire un onAction ouvrant un formulaire est facile, mais pour ce cas c'est différent.

    Comment cela se déroule-t-il dans la logique quand on clique sur argument 1 ?
    Quel est le sub et/ou Public sub qu'il faut créer et pourquoi ?

    Pourrait-on me l'expliquer par rapport au code dans cet exemple, afin que je comprenne bien svp.

    Merci d'avance.

    Laurent
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Regarde la réponse que j'ai faite ici : Récupérer valeur d'un DropDown
    L'argument selectedId de la callback contient l'id de l'item si j'ai bonne mémoire.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 24
    Points
    24
    Par défaut
    Merci pour ta réponse LedZeppII,

    Ca marche effectivement avec la fonction de rappel onAction (en utilisant l'argument SelectedID de cette fonction).

    Dans mon cas, la fonction onAction utilise l'ID sélectionné pour exécuter les actions.

    XML (Liste déroulante non modifiable dropDown)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    				<dropDown id="ArgumentairesDropdown" label="Argumentaires :" onAction="ListeArgumentaires">
    					<item id="Argumentaire1" label="1er"/>
    					<item id="Argumentaire2" label="2e"/>
    				</dropDown>
    VBA (fonction de rappel onAction)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ListeArgumentaires(ByVal control As Office.IRibbonControl, ByVal SelectedId As String, ByVal SelectedIndex As Integer)
            Select Case SelectedId
                Case "Argumentaire1": MsgBox ("1er sélectionné")
                Case "Argumentaire2": MsgBox ("2e sélectionné")
            End Select
    End Sub
    Par contre, je n'ai pas utilisé la fonction de rappel GetIdemID.
    A quoi me servirait-elle vu ce que je veux faire ?

    (J'ai trouvé un exemple de code, sans quoi je n'aurais pas su comment faire).

    Ci-joint l'exemple en fichier .zip (xml/vba).
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,
    Citation Envoyé par LaryAndrew Voir le message
    Par contre, je n'ai pas utilisé la fonction de rappel GetIdemID.
    A quoi me servirait-elle vu ce que je veux faire ?
    getItemID sert au remplissage dynamique de la liste dropDown.
    Typiquement, on déclare une dropDown dans le xml, mais sans sous-éléments item.
    Le remplissage de la liste se fera au travers des 3 callbacks ...
    getItemCount (fournit au ruban le nombre total d'éléments dans la liste)
    getItemID (fournit au ruban l'id de l'item)
    getItemLabel (fournit au ruban le label de l'item)

    A+

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Points : 24
    Points
    24
    Par défaut
    Merci LedZeppII.

    Réponse très claire.
    Sera très utile pour des listes longues.


    Autre question sur ce même cas :
    • 1er cas : je ne souhaite pas conserver le choix effectué par l'utilisateur dans la liste déroulante
      => aucune valeur n'est sélectionnée dans la liste déroulante au redémarrage de la BDD
      => c'est notre cas, ça fonctionne par défaut

    • 2e cas : je souhaiterais conserver le choix effectué par l'utilisateur dans la liste déroulante
      => la valeur précédemment sélectionné par l'utilisateur dans la liste déroulante devra être conservée au redémarrage de la BDD
      => ce n'est pas notre cas, comment faire ?

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Concernant le deuxième cas.
    Dans la sub ListeArgumentaires affectée à la callback onAction, mémoriser (stocker) l'id de l'item choisi par l'utilisateur, dans une table.
    Ajouter une sub pour la callback getSelectedItemID de la liste dropDown.
    Au chargement du ruban (ou à la première utilisation de la liste dropDown, je ne sais plus), le ruban appelle la sub affectée à la callback getSelectedItemID.
    C'est dans cette sub que l'on fournit au ruban l'id de l'item sélectionné.

    Je n'ai pas Access 2007 pour vérifier, mais je crois que c'est ça le principe.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/06/2014, 11h21
  2. Réponses: 3
    Dernier message: 06/05/2011, 12h30
  3. Réponses: 3
    Dernier message: 19/07/2009, 07h46
  4. [VB6]Créer une liste déroulante dans une dataGrid
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2006, 10h32
  5. Réponses: 3
    Dernier message: 20/02/2006, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo