Liste dépendante d'une autre liste

Bonjour,

Je suis bloqué depuis plusieurs heures malgré mes recherches je n'ai pas réussi à créer ma liste déroulante.

Je m'explique : j'ai besoin de créer des listes déroulantes mais qui dépendent du contenu d'autres cellules.

J'ai 2 colonnes : ma première "Typo" contient une liste de 3 valeurs : P, B ou T.

La seconde "Application" doit également être une liste déroulante mais son contenu dépend de celui de la colonne Typo c'est à dire que si l'on a sélectionne P, seules les valeurs de P doivent apparaître en choix dans la colonne application.

Dans le fichier ci-joint, la première feuille contient les 2 colonnes en question et la seconde feuille nommée "Application" contient les valeurs de P, B et T.

Autre question, est-il possible d'augmenter le nombre de caractères possibles dans une liste déroulantes ? car pour les T, les choix sont nombreux et ne rentrent donc pas.

J'espère avoir été clair...

Merci par avance de votre aide.

Bonsoir et bienvenue,

Voici un essai

Cdt

Henri

73kivanc-essai.xlsx (12.94 Ko)

bonjour

un essai

40kivanc.xlsx (12.86 Ko)

les plages sont nommées

cordialement

Merci beaucoup pour vos réponses, c'est exactement que je cherchais à faire.

Par contre, pouvez-vous m'indiquer la méthode ? Car je vais avoir à le reproduire plusieurs fois.

De plus, je souhaiterai avoir également une liste déroulante par rapport à un premier choix mais dans une même colonne.

Je m'explique, la colonne "Période" comptient les années 2014 et 2015. Lorsque l'on sélectionne 2014, un nouveau choix doit apparaitre (Q1 2014...) et pour 2015 idem (Q1 2015; Q2 2015...)

2014 => Q1 2014; Q2 2014; Q3 2014; Q4 2014; S1 2014; S2 2014

2015 => Q1 2015; Q2 2015; Q3 2015; Q4 2015; S1 2015; S2 2015

est-ce le même principe ?

Merci a vous

re

pour les explications

AFEH utilise la methode des plges nomées (regarde dans gestionnaire de nom) 3 plages = 3noms ;ensuite la formule dans validation utilise ces noms qui repondent a une des 3 conditions

TULIPE :un peu plus complexe

1) apres avoir nommé la plage des lettres (index) et determiné un point de depart (dept) ;laformule dans validation est DECALER

alors on decale (comprendre "deplacer) le point de depart de Xcolonnes : cest la position de la lettre dans index obtenue avec EQUIV etpour dire combien de ligne ; moi j'ai precalculé le nb de valeur de chaque colonne que je recupere grace a l' autre decaler de la formule ;mais on aurait pu mettre tout dans la memeformule .....

quand au sujet des dates ;je ne comprend rien >>>refait une piece jointe

cordialement

Bonjour,

Merci encore.

En PJ un fichier contenant la colonne Period. Elle contient une liste déroulante où l'on peut choisir une période en 2014 en 2015. Or je souhaiterai que n’apparaisse en premier choix seulement les années 2014 et 2015. Ensuite lorsque le curseur de la souris est sur 2014 alors on a le choix entre Q1, Q2... Idem pour 2015. Le tout dans la même colonne. Est-ce possible ?

Merci

28period.xls (16.00 Ko)

bonjour

voila

33periodkivanc-1.xls (18.00 Ko)

tu feras Validation >>liste pour voir la formule

cordialement

Bonjour Kivanç et Tulipe_3 ou 4

Même méthode que pour le fichier Kivanç_essai

Cdt

Henri

37kivanc-essai2.zip (4.93 Ko)

salut AEFH

OUI mais tout n'est pas dans la meme cel ; là est la "difficulté"

cordialement

Bonsoir Tulipe,

Et oui, mais notre ami Kivanç n'est pas bien bavard pour donner davantage d'infos.

Je reconnais que mes compétences sont bien limitées par rapport à toi et autres intervenants.

Cependant, ayant souvent eu de l'aide, j'essaie à mon tour d'être utile.

Cdt

Henri

Bonjour,

Merci a vous 2.

Mais malgré vos explications je n'arrive pas à modifier la liste des Type. En effet je souhaiterai rajouter des valeurs... comment faire ?

De plus, pour la colonne période sera-t-il possible de créer des tableaux croisés dynamiques et de pouvoir récupérer le nombre de donner pour par exemple les périodes Q1 2014... ?

Merci encore

bonjour

pour y voir clair: mets une piece jointe bien representative de ton ouvrage ; leforum s'arrangera pour te fournir une solution "prete à cuire"; par exemple a nommer les plages en dynamique ; ce qui resoudra ton probleme d'extension

cordialement

En pièce jointe mon fameux fichier.

Changement : les listes présentes en feuille "Application" contiennent 2 nouvelles valeurs : "P Other" et "B Other" mais elles ne s'ajoutent pas automatiquement à la liste déroulante colonne H de la 1ère feuille.

Pourrais-je le faire seule ? Car j'aurai peut être à modifier ces listes et j'aimerai éviter de vous le demander à chaque fois..

Colonne K : tout fonctionne comme je le souhaitais pour la Period. Ma seule question est est-ce que ce "système" de liste déroulante me permet de créer un tableau dynamique à l'avenir pour récupérer toutes les données pour chacune des périodes. Ou est-ce que ça va se restreindre à récupérer pour 2014 et 2015 et non pas Q1, Q2...

Merci

Je viens ENFIN de comprendre seul... mieux vaut tard que jamais dit-on! J'ai réussi à modifier la liste dans Insertion/nom... Je ne savais pas que l'on pouvait appeler d'autres feuilles dans validation de données.

Merci pour votre aide précieuse.

Je viens de finalement créer une colonne année 2014 ou 2015. La colonne L suivante doit choisir si K=2014 alors elle renvoie la liste periode14 contenue dans la feuille Application. Idem pour 2015. Je suis partie sur le même principe que vous.

Pourquoi ma formule est incorrecte ?

=SI(K3="2014";periode14;periode15))

Le fichier est en PJ. merci

Bonsoir kivanç,

Voici une nouvelle version avec initialisation automatique des listes col A,B et C de la feuille application à l'ouverture du classeur.

Sub initialise() 'initialisation des listes de la feuille Application
Application.ScreenUpdating = False
Sheets("Application").Select
  Dim Derlig1
    'Sheets("Application").Select
    Derlig1 = Cells.Find("*", , , , xlByRows, xlPrevious).Row
      Range("A3:A" & Derlig1).Name = "Liste1"
        Derlig2 = Cells.Find("*", , , , xlByRows, xlPrevious).Row
      Range("B3:B" & Derlig2).Name = "Liste2"
    Derlig3 = Cells.Find("*", , , , xlByRows, xlPrevious).Row
      Range("C3:C" & Derlig3).Name = "Liste3"
Sheets("Feuil1").Select
End Sub

Si d'autres ajouts sont fait dans ces colonnes, ils seront pris en compte après fermeture et ouverture du fichier. Ou bien cliquer sur Macro et exécuter "ThisWorkbook.initialise".

J'ai rectifié ta formule comme ceci: =SI(K3=2014;periode14;periode15)

Bon courage

Cdt

Henri

16kivanc-essai3.xlsm (19.89 Ko)

Bonjour,

Juste une rectif concernant le module "Initialise".

Sub initialise() 'initialisation des listes de la feuille Application
Application.ScreenUpdating = False
Sheets("Application").Select
  Dim Derlig1, Derlig2, Derlig3
    Derlig1 = Range("A" & Rows.Count).End(xlUp).Row
      Range("A3:A" & Derlig1).Name = "Liste1"
    Derlig2 = Range("B" & Rows.Count).End(xlUp).Row
      Range("B3:B" & Derlig2).Name = "Liste2"
    Derlig3 = Range("C" & Rows.Count).End(xlUp).Row
      Range("C3:C" & Derlig3).Name = "Liste3"
Sheets("Feuil1").Select
End Sub

Il s'agit bien d'un module donc pas dans ThisWorkbook.

Dans ThisWorkbook mettre ce code

Private Sub Workbook_Open()
    Call initialise
End Sub

Le principe reste le même.

Cdt

Henri

9kivanc-essai4.xlsm (21.26 Ko)

Bonjour,

Je souhaite finalement ajouter des années à la colonne L Year (jusque 2025). J'ai donc créé dans l'autre feuille d'autres listes mais ma formule pour la colonne M "Period" est à la fois incorrecte (où est l'erreur) et est trop longue;

Y'a t'il une solution ?

Le fichier est en PJ.

Merci

Bonjour,

Une solution. Liste déroulante en colonne M et formule =DROITE(M3;4) en colonne K à tirer vers le bas.

A voir

Cdt

Henri

15kivanc-essai5.xlsx (24.23 Ko)

Bonsoir à toutes et à tous,

Une méthode un peu lourde mais qui marche bien avec la fonction SI(K3=2014;periode1;SI(K3=2015;periode2;SI(K3=2016;periode3;SI(K3=etc... jusqu'à 2025 et periode12))))).

Cdt

Henri

Rechercher des sujets similaires à "liste dependante"