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 :

Comment faire disparaitre un bouton de controle en fonction d'une liste deroulante


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Comment faire disparaitre un bouton de controle en fonction d'une liste deroulante
    Boujours a tous!

    J'aimerais faire disparaitre un (ou plusieurs) des boutons de controles lorsque je choisis un element dans une liste deroulante

    Exemple: je coisis dans ma liste deroulante "Maison" et seul mon bouton maison reste afficher (tout les autres disparaiseent) dans mon formulaire.

    Merci d'avance!

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut Invisibeule
    Bonjour,

    il y a combien de combinaisons possibles ?

    pour se faciliter les choses
    Tu peux indexer le nom des bouton ex : me.bouton01, me.bouton02
    et éventuellement utiliser le fameux
    Select Case
    Case "popo"
    etc ...

    a+

  3. #3
    Membre confirmé
    Avatar de dok flint
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    366
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 366
    Points : 548
    Points
    548
    Par défaut
    Bonjour ,
    Tu peux faire :
    -mettre tout les boutons de commande "invisible" par defaut
    -aller sur la liste deroulante et mettre sur les deux evenemnts "Sur clic" et "Sur Sortie" deux petites conditions trés simples.
    -bien sûr pour les boutons tu a la propriété legende qui la meme que les valeurs dans la liste deroulante.
    Moi j'ai fait pour mon exemple 2 boutons qui sont "Commande0" et "Commande1" Ci dessous le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Modifiable2_Click()
    [Commande0].Visible = False
    [Commande1].Visible = False
    End Sub
    -------------------------------------------------------------------------------------
    Private Sub Modifiable2_Exit(Cancel As Integer)
     
    If [Modifiable2].Column(1) = [Commande0].Caption Then [Commande0].Visible = True
     
     
    If [Modifiable2].Column(1) = [Commande1].Caption Then [Commande1].Visible = True
     
    End Sub
    A+
    Pourquoi faire compliqué quand on peut faire simple
    Je suis encore en ACCESS 2003
    Un petit clic sur ça fait toujours plaisir , c'est par là -------------------------------------------------------v

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Boujour naphta et dok flint et merci pour vos reponses,

    Desole pour la reponse tardive mais jai ete tres occupe ces dernier temps.

    naphta: il y a combien de combinaisons possibles ?
    Elle sont nombreuse naphta, j'ai pas moins de 26 boutons et 31 choix dans ma liste deroulante. Mais ne t'inquiete pas, ca je m'en occupe

    naphta:et éventuellement utiliser le fameux
    Select Case
    Case "popo"
    etc ...
    Peut tu m'en dire plus sur ce fameux Select Case, parce que la je ne te suis pas! Pour info, je ne suis pas un as d'Access, meme si ca fait un an que je l'utilise.


    dok flint: Ton idee m'avait l'air tres interressante (elle l'est d'ailleur surement), mais je n'arrive pas a la faire fonctionner
    Cependant, je ne comprend pas pourquoi tu me demande de "mettre tout les boutons de commande "invisible" par defaut", ce que je fait par l'intermediaire du formulaire (propriete->Format-> Visible "Non"), alors qu'apres tu me demande d'ecrire dans mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable2_Click()
    [Commande0].Visible = False
    [Commande1].Visible = False
    End Sub

    Deuxiemement, je n'arrive pas a faire fonctionner ce code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Modifiable2_Exit(Cancel As Integer)
     
    If [Modifiable2].Column(1) = [Commande0].Caption Then [Commande0].Visible = True
     
    If [Modifiable2].Column(1) = [Commande1].Caption Then [Commande1].Visible = True
     
    End Sub
    Je l'ai adapte a mon exemple mais ca ne marche, alors que le code a l'air correct. C'est certainement parce que je ne suis pas douer!
    Si tu comprend pourquoi (a part le faite que je ne soit pas douer) dis le moi

    Merci!

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    J'utiliserais également un Select Case ... sur l'événement Click de la liste déroulante ...
    Petit exemple ...
    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
     
    Select Case Me.NomDeLaListeDéroulante
       Case "Maison"
            Me.BtnMaison.Visible=True
            Me.BtnMaison.SetFocus 'On place le curseur sur le bouton
            Me.BtnBureau.Visible=False  'Remettre tous les autres controles invisible
     
       Case "Bureau"
            Me.BtnBureau.Visible=True
            Me.BtnBureau.SetFocus 'On place le curseur sur le bouton
            Me.BtnMaison.Visible=False  'Remettre tous les autres controles invisible
     
     
       Case "AA", "BB", "CC" 'Cas identiques
             'À déterminer 
     
       Case Else 'Tout les autres cas
             'À déterminer 
     
    End Select
    Bonne chance ...

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Enfin j'ai reussi!

    Je vous explique comment, meme si ma methode n'est certainement pas la plus rapide et la plus efficace.

    Objectif de depart: Je voulais donc que certains de mes boutons de mon formulaire disparaisse en fonction de ce que je selectionnais dans ma liste deroulante.

    Pour cela, j'ai d'abord du determiner pour chaque bouton, si des donnees etaient presentes ou non, en fonction de ce que je choisissait dans ma liste deroulante. J'ai donc creer pour chaque bouton une requete effectuant la moyenne de mes donnees (ce sont toute des donnees numeriques), en mettant comme critere ma liste deroulante (une sorte de filtre). Ensuite, j'ai traduit mon resultat en lui disant que si il y avait un chiffre, il devait mettre le nom de mon bouton, sinon il devait mettre "no":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IIf([AvgOfMFR (g/10 min)] Is Null,"No","MFR")
    j'ai ensuite mis le resultat de cette requette dans une zone de texte invisible sur mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DLast("[Control data]","Query check data MFR 3")
    J'ai mis a jour mon formulaire apres chaque changement de ma liste deroulante.
    Enfin, en VBA, je fait en sorte de faire apparaitre mon bouton quand il y a le nom de mon bouton dans la zone de texte, sinon non:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Review screen to allow only applicable control charts'
    Private Sub Combo15_AfterUpdate()
     
    [Text78].Requery
     
    If [Text78].Value = "MFR" Then [Command77].Visible = True
    If [Text78].Value = "No" Then [Command77].Visible = False
     
    End Sub
    Et ceci pour mes 26 boutons!
    Je sais ce que vous allez dire... c'est un peu long, mais au moins ca marche!

    En tout cas merci a dok flint, naphta et mikeGo20 pour leur aide, meme si je n'ai toujour pas utilise le fameux select case. Mais ce sera pour une autre fois!

    A+

    je laisse ouvert la discussion pour tout commentaire jusqua la fin de la semaine.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/12/2007, 18h17
  2. Comment griser ou faire disparaitre le bouton Maximize ?
    Par ero-sennin dans le forum Composants VCL
    Réponses: 14
    Dernier message: 13/11/2007, 10h37
  3. Réponses: 4
    Dernier message: 25/04/2007, 16h23
  4. Faire disparaitre un bouton!
    Par manuaccess10 dans le forum IHM
    Réponses: 11
    Dernier message: 02/12/2005, 07h28
  5. Réponses: 4
    Dernier message: 03/04/2005, 14h26

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