Re
D28, un oubli
je te mets les explications pour la liste. elles ne sont pas de moi.
SI((NB.SI(Plan!$A$3:$P$47;Tous_G)=0);LIGNE(Tous_G)) le coeur de la formule : c'est la partie matricielle :
pour chaque valeur de Tous on vérifie si elle est dans choisis1, si elle n'y est pas (nb.si()=0) on "note" le N° de ligne, si elle y est on "note" FAUX.
on ainsi crée une matrice qui est composée de valeurs FAUX et de N° de ligne (et ce pour chaque ligne où on recopie la formule => on a donc la même matrice à chaque fois)
Ensuite sur chaque ligne on va extraire une valeur différente de la matrice avec petite.valeur (matrice;k)
pour faire varier le k sur chaque ligne on compte le nb de valeurs de $C$1 à $C1 (soit 1) et en recopiant vers le bas ça donnera $c$1 à$c2 soit 2 etc..
les plus petites valeurs sont les chiffres donc les N° de ligne pour lesquels on a pas trouvé la valeur de tous dans choisi1
avec index($B$1:...) on va afficher la valeur de Tous en question : noter que l'index doit commencer à la ligne 1 puisque la valeur renvoyée dans la matrice est un N° de ligne.
Ensuite le SI(NBVAL(Plan!$A$3:$P$47)-34+NBVAL($M$3:M3)-1<70 ;...;"") sert à ne rien afficher quand la xieme petite valeur est à faux : en fait quand on a 70 valeurs entre celles qui sont déjà choisies (NBVAL(choisis1)-34 + celles qui sont calculées pour la liste déroulante NBVAL($C$1:$C1)-1
La formule d'origine etait au debut = SI(NB.si(et ic,i la liste des cellules ou il y a un choix)+NBVAL($M$3:M3)-1<70
70, le nombre maxi dans une liste.
Comme c'est plus facile de comptert le nb de cellules occupées dans la plage Plan!$A$3:$P$47 quant il n'y a aucun choix, on tombe sur 34 ==>le nombre de choix deja effectue= nbval( Plan!$A$3:$P$47)-34 ce qui implique de ne pas ajouter de cellules (texte ou autre) dans la plage Plan!$A$3:$P$47. Ou alors tu effectues le remplacement par nbsi($b$6;$c$6;$b$8;$c$8;etc ...)
si tu veux augmenter ou diminuer les listes, tu adaptes le 70 et dans les listes, tu descends ou tu monte la formule en conséquence.
Pareil pour le 34 si tu ajoutes des cellules dans la plage Plan!$A$3:$P$47 (le 34, c'est =nbval((Plan!$A$3:$P$47) quand il n'y a pas de choix exprimé.
Cdlmnt