Liste déroulante avec filtre

Egruat

XLDnaute Occasionnel
Bonjour,

J'ai regardé sur le forum mais n'ai rien trouvé de vraiment pertinent.

Ci-joint le fichier d'exemple.

Sur la feuil1 figure les données sur 2 colonnes.

Sur la feuil2, je souhaiterai obtenir une liste déroulante en C4 la liste déroulante des options possible en fonction de la donnée en C3.

Pourriez-vous m'aider ? Est-il possible d'éviter une macro ?

Merci !
 

Pièces jointes

  • Exemple.xls
    57.5 KB · Affichages: 50
  • Exemple.xls
    57.5 KB · Affichages: 55
  • Exemple.xls
    57.5 KB · Affichages: 53
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Liste déroulante avec filtre

Bonjour,
tu n'est pas donné trop de peine pour expliquer ton probleme : un point d'interrogation et une fleche !
Boisgontier s'est donné la peine de comprendre ta demande, de donner le détail des zones nommées, et d'afficher le calcul.
Que faut-il expliquer en plus ?
il crée une liste dynamique en fonction de l'année choisie (en jaune !) il crée une zone nommée dynamique pour l'afficher dans la liste de validation : peut-être que lire les formules et essayer de les reproduire dans un autre fichier t'aiderait à comprendre le calcul.
 

Egruat

XLDnaute Occasionnel
Re : Liste déroulante avec filtre

QUe crois-tu que je fasse ?? Que je pose des questions sans regarder ?? Je saisi la fonction INDEX mais je ne comprends pas:
- comment est défini le nombre de ligne
- pourquoi si je prends et copie la première ligne du champ ListeWeek, la formule ne fonctionne pas et recopie la même valeur

Je me donne toujours la peine de comprendre.
 

Dugenou

XLDnaute Barbatruc
Re : Liste déroulante avec filtre

Ok, pardonnes moi ce moment d'humeur, je vais essayer de détailler cela.
NB.si(liste des cellules au dessus; liste de toutes les cellules contenant une des valeurs à afficher) compte le nb de fois où on affiche au dessus une cellule de la liste de référence.
Si(nb.si()=0 .... ) ne traitera, dans le cas vrai, que celle qu'on a pas encore affiché : c'est la base du dédoublonnage.

si vrai on renvoie le N° de ligne avec ligne($1:$1000) : avec indirect("1:"&lignes(week)) le 1000 s'adapte automatiquement à la longueur de la plage
si faux : on renvoie un grand chiffre soit le nb de lignes de la plage => lignes(week)

avec min on prend le plus petit des deux (au passage on a ajouté la condition sur l'année sans traiter le cas faux : dans ce cas le calcul renvoie "faux" dont le min ne tient pas compte (min(1;faux) renvoie 1)

avec index on renvoie le N° de semaine qui se trouve au N° de ligne obtenu
Noter que la formule est matricielle (valider par ctrl+maj+enter), qu'on peut la recopier vers le bas en "tirant le carré"
 

Pièces jointes

  • Boisgontier liste sans doublon.xls
    72.5 KB · Affichages: 45
  • Boisgontier liste sans doublon.xls
    72.5 KB · Affichages: 52
  • Boisgontier liste sans doublon.xls
    72.5 KB · Affichages: 52
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 070
Membres
103 453
dernier inscrit
Choupi