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

Excel Discussion :

Liste déroulante qui retourne la colonne 2 si la colonne 1 = A1


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Liste déroulante qui retourne la colonne 2 si la colonne 1 = A1
    Bonjour tout le monde !

    Je viens demander un petit coup de main par rapport à une liste déroulante que j'essaie de mettre en place sur mon fichier excel.

    J'ai en fait plusieurs menus déroulants imbriqués les uns dans les autres que je souhaiterais "filtrer".

    Actuellement, j'ai quelque chose qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Véhicule]	[Marque]	[Modèle]	>Immatriculation<
    (ceci me permet de sélectionner progressivement de quel véhicule il s'agit pour obtenir au final son immatriculation)

    Et je souhaiterais ajouter la possibilité d'avoir des types de véhicules (Voiture, moto, camion...)

    Voilà comment je pensais organiser mes listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [Catégorie]
    Voiture
    Moto
    Camion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Marque]
    Voiture	&	Renaud
    Moto	&	Honda
    Moto	&	Honda
    Camion	&	Mercedes
    ...

    Et c'est entre ces deux là que se pose le problème.

    Ma liste étant composé à présent de deux colonnes, je ne sais pas comment récupérer la liste qui correspond uniquement à ceux de la catégorie sélectionnée.
    Je m'embrouille totalement entre Index / Equiv et RechercheV, je pense, ne me permettrait pas d'extraire une liste déroulante, encore moins quand les colonnes sont inversées.

    Vous auriez des idées? Des pistes?

    Merci beaucoup à tous pour l'aide que vous pourrez m'apporter et à bientôt.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Les listes déroulantes, sur un niveau, c'est facile.
    Sur deux niveaux, ça se fait encore assez bien en utilisant DECALER() et EQUIV().
    Sur trois niveaux, ça devient cauchemardesque.
    Sur quatre niveaux (ton cas), n'y pense même pas.

    Si tu veux faire ça, passe sur un gestionnaire de base de données (Access, Open Base, etc.), Excel n'est vraiment pas fait pour.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut


    Merci pour le conseil, je vais essayé de faire autrement du coup.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Les listes déroulantes, sur un niveau, c'est facile.
    Sur deux niveaux, ça se fait encore assez bien en utilisant DECALER() et EQUIV().
    Sur trois niveaux, ça devient cauchemardesque.
    Sur quatre niveaux (ton cas), n'y pense même pas.

    Si tu veux faire ça, passe sur un gestionnaire de base de données (Access, Open Base, etc.), Excel n'est vraiment pas fait pour.
    Petite question,
    Si je venais à utiliser une base de données (excel ou libreoffice), comment récupérer les informations ? Y'a t il des outils des visualisations déjà intégré ?

    J'ai l'habitude d'utiliser des bases de données pour certains de mes projets perso mais il s'agit ensuite de créer moi même toute une interface de récupération des données (en Php quand c'est un projet web, en C# quand c'est pour un programme...)


    Edit :
    Si je limite le nombre de listes pour me focaliser sur seulement deux, tu penses qu'on pourrait essayé de faire en sorte que ça soit fonctionnel sans que ça soit imbuvable?
    Pour tout te dire, je suis très curieux de savoir comment je pourrais effectuer un décalage à partir d'un choix précédent sur excel.

    Edit 2 :
    Je n'arrive pas à renvoyer une liste, je ne comprends pas où je me trompe. Cette formule-ci ne me renvoit que le premier résultat, pas le reste de ceux qui correspondent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Marques;EQUIV(A2;INDEX(Marques;;1);0);2)
    En A2 se trouve le type de véhicule (voiture, moto...)
    Ma liste Marques est composée de deux colonnes :
    1 : [Type de véhicule]
    2 : [Nom de la marque]

    J'ai essayé de "triché" en faisant une fonction en vba que j'appelerais dans ma validation de données mais... Évidemment ça aurait été trop simple que ça fonctionne ^^

  5. #5
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Le plus frustrant c'est que c'est quelque chose que je sais faire sous openOffice et qui ne fonctionne pas sous Excel...

    Si ça peut aider à me faire comprendre, je me permet d'ajouter l'explication de comment on sait sout OO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cellule A1 : 
    Je crée une liste déroulante avec comme formule la liste nommée (Type de véhicule dans mon cas):
    =listeVehicules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cellule A2 : 
    Je crée aussi une liste déroulante avec comme formule :
    SI(listeVehiculesMarque=A1;listeMarques)
    Ce qui me permet de créer la liste des marques, uniquement si la valeur de A1 correspond à celle associée.

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Doktane Voir le message
    Si je limite le nombre de listes pour me focaliser sur seulement deux, tu penses qu'on pourrait essayé de faire en sorte que ça soit fonctionnel sans que ça soit imbuvable?
    Pour tout te dire, je suis très curieux de savoir comment je pourrais effectuer un décalage à partir d'un choix précédent sur excel.
    Tu mets la première liste en horizontal sur la première ligne, comme si tu faisais des entêtes de colonne.
    Et dans chacune des colonnes, tu mets la liste correspondant à la valeur de la première liste qui se trouve en entête.

    Ensuite, pour les listes déroulantes, tu prends comme source de la première, la liste horizontale.
    Comme source de la seconde, tu utilises un DECALER() avec, comme zone de base, la liste de la colonne 1 et comme décalage horizontal, le résultat d'un EQUIV() recherchant dans la liste horizontale le résultat de la première liste déroulante, résultat auquel on soustrait 1.

    Si tu veux le faire pour 3 critères, c'est encore possible mais encore plus complexe.
    Il faut que tu fasses la même chose mais avec plusieurs tableaux chacun ayant :
    - en titre un élément de la liste 1,
    - en entête de chaque tableau un élément de la liste 2
    - en valeur de colonne les éléments de la liste 3

    Et les calcul de décalage sont plus compliqués.
    Je l'ai fais une fois (ça marche) mais pas sûr que je récidive.
    Je n'imagine même pas le faire pour plus de 3 critères.
    Autant utiliser un simple filtre, c'est plus simple et plus rapide à mettre en place.

    Je n'arrive pas à renvoyer une liste, je ne comprends pas où je me trompe. Cette formule-ci ne me renvoit que le premier résultat, pas le reste de ceux qui correspondent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Marques;EQUIV(A2;INDEX(Marques;;1);0);2)
    INDEX ne peut pas renvoyer une liste ni même une référence. Cette fonction ne renvoie qu'une valeur d'une cellule.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide et tout tes conseils !

    Je vois ce que tu veux dire, et effectivement, ça donne un très gros tableau de données, surtout si on vient à avoir besoin d'ajouter une ligne.

    Autant utiliser un simple filtre, c'est plus simple et plus rapide à mettre en place.
    Je vais regarder ce que je trouve de ce coté là, mais je ne vois pas de quoi tu parles ? Tu as un exemple de ce dont il s'agit / de comment ça fonctionne?

    Edit :

    Je crois que je vois ce dont tu parles après une courte recherche google.
    Mais en fait mon objectif n'est pas de trouver ces valeurs, mais d'aider à la saisie l'utilisateur qui viendrait à renseigner le document (et s'assurer de la cohérences des données qui plus est).


    Il s'agit bien de celà dont tu parlais ?
    https://support.content.office.net/f...0dabec1708.jpg

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Doktane Voir le message
    Je vais regarder ce que je trouve de ce coté là, mais je ne vois pas de quoi tu parles ? Tu as un exemple de ce dont il s'agit / de comment ça fonctionne?
    Tu sélectionnes tes 4 colonnes > Ruban Données > Icone Filtrer.

    Tes "listes déroulantes" (et bien plus), tu les auras automatiquement en cliquant sur les petites flèches apparues dans les cellules d'entête de tes colonnes.

    C'est tellement simple et rapide à mettre en place que, perso, je n'hésite pas à en user et en abuser.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Passionné
    Inscrit en
    Mai 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Mai 2017
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Bonjour !

    Encore merci pour le temps que tu me consacre ^^

    On parlait donc bien de la même chose et je l'utilise aussi très fréquemment du coup (très efficace)
    Mais ça ne me permet pas d'obtenir ce que je souhaite malheureusement.

    Il ne s'agit pas "juste" de récupérer l'information, mais de la saisir en faite.
    La tableau que je crées actuellement sera alimenté par différentes personnes et je souhaite donc limiter les erreurs de saisies (empêcher qu'un modèle qui n'existe pas pour ce type soit sélectionné) mais aussi d'alléger la liste au maximum en n'affichant que les bonnes informations.

    N'arrivant toujours pas à faire ce que je veux, je vais rester sur des listes imbriqués comme j'avais, et tant pis pour les types.

    Encore un énorme merci à toi en tout cas ! A très bientot !


    PS : Si des idées venaient à quelqu'un qui passerait par ici, je resterais pas loin.

Discussions similaires

  1. [XL-2003] Liste déroulante avec filtre et tri sans doublon
    Par mandrake57 dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 18/03/2011, 09h07
  2. [Vxi3] Liste déroulante avec filtre
    Par nawal59 dans le forum Webi
    Réponses: 8
    Dernier message: 03/12/2010, 17h43
  3. Réponses: 2
    Dernier message: 30/07/2009, 19h25
  4. liste déroulante avec données mysql
    Par fab44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/02/2005, 20h45
  5. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 12h01

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