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 :

Afficher Une Liste Selon La Valeur D'une Cellule


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 46
    Points
    46
    Par défaut Afficher Une Liste Selon La Valeur D'une Cellule
    J'ai un problème. J'ai deux listes (définies avec Insertion->Nom->Définir) et j'aimerais afficher une des deux dans une cellule (Données->Validation->Autoriser->Liste et ??? dans sources ) en fonction de la valeur qui est dans une autre cellule!
    Comment peut-on faire?
    Merci

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    En évitant VBA, bien sûr!

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Salut Kevin

    ci joint demo sans VBa bien sûr

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Je comprends pas formule dans source???
    Et si les listes sont de tailles différentes?

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Bien trouvé Michel, mais si les listes sont de tailles différentes ca devient tres dur!

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    Pas sûr d'avoir compris les listes de longueurs différentes...

    ci joint une version 2 en utilisant des listes nommées et tenant compte de leur longueur (?...)
    la formule devient:
    =DECALER(INDIRECT(B2);0;0;NBVAL(INDIRECT(B2));1)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Merci bien Michel, elle me convient parfaitement ta formule sauf que j'aimerais bien la comprendre, peut tu mexpliquer en deux trois mots....

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    en 2 3 mots, ca m'étonnerait!...
    c'est parti:

    les sous listes sont nommées avec les m^mes noms que ceux présents dans la liste 1

    les 2 fonctions indirect et decaler utilisées sont avec sommeprod les 3 fonctions "magiques" d'excel (d'après ma pomme)

    La fonction indirect renvoie la valeur contenue dans la cellule. si dans A1 il y a marqué "zaza"
    indirect(A1) renvoie zaza
    ce qui permet ainsi "d'envoyer" des noms de plages (ou cellules) nommées ("zaza") dans des formules...combinée avec des formules à la place de A1, on arrive à faire "des miracles"!

    la fonction décaler déplace logiquement et non physiquement une zone Z de X colonnes et Y lignes en faisant apparaitre P lignes de la zone et Q colonnes de la zone
    donc:
    decaler(Z;Y;X;P;Q)

    dans notre cas P est donné par NBVAL (attention si obtention de valeur par formule avec des résultats 0 ou "") et Q=1 puisqu'il y a une 1 seule colonne;
    comme n a pas besoin de décaler quoique ce soit X et Y =0

    d'où the formule

    nota: dans la version 1 +compliquée (fin de journée) je décalais avec EQUIV: regarde si tu veux car cela explique le déplacement XY

    là aussi l'imbrication de fonctions dans DECALER permet de résoudre des pb sans utiliser VBA, ce qui est généralement préférable et + rapide

    Voili,voilou
    Suis épuisé, moi!!!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    Ca m'a l'air trés bien mais j'ai une question de newbie
    Je n'arrive pas à afficher ta formule.
    Heureusement qu'il y a le commentaire

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 116
    Points
    1 116
    Par défaut
    BONJOUR
    la solution est sur ce lien
    http://www.technicland.com/malpolitus.swf

    MERCI

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 172
    Points : 99
    Points
    99
    Par défaut
    Rhoo trés drôle.
    Ce n'est pas mon premier message et je penses m'être déjà plus ou moins présenté.
    Enfin il est vrai qu'un simple bonjour ne coûte pas des masses, alors je vais de cas pas corriger cette erreur :
    enfin de là à dire que j'ai été impoli

    Hi everybody

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/12/2014, 09h05
  2. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  3. Réponses: 0
    Dernier message: 25/02/2008, 15h31
  4. Réponses: 4
    Dernier message: 23/04/2007, 14h01
  5. Réponses: 5
    Dernier message: 28/08/2006, 18h11

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