Re : copie de certaines lignes dans un onglet
Bonsoir
La syntaxe de la fonction DECALER est DECALER(cellule ou plage initiale; nbre de lignes de décalage;nbre de colonnes de décalage;hauteur de la plage à renvoyer;largeur de la plage à renvoyer)
EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0) renvoie la position de la date contenue dans Feuil1!A$1 dans la plage Davayat!H$9:BO$9.
DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)) renvoie la première colonne du jour contenu dans Feuil1!A$1, par ex pour le 07/07/2016, cela donne la plage DECALER (Davayat!G$10:G$23;;10) donc Davayat!Q$10:Q$23.
(DECALER(Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0))="x") renvoie un 1 pour chaque cellule de la plage précédente contenant un "x" (donc colorée), 0 pour celles contenant autre chose qu'un "x", ou vide.
(DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+1)="x"), idem pour la seconde colonne du jour considéré.
(DECALER (Davayat!G$10:G$23;;EQUIV(Feuil1!A$1;Davayat!H$9:BO$9;0)+2)="x") pour la troisième colonne.
SI((..... ) + (.....) + (.....);LIGNE($10:$23) renvoie la liste des n° de ligne contenant un "x" ou dans la première, ou dans la seconde ou dans la troisième colonne du jour concerné.
PETITE.VALEUR (......;LIGNE(1:1)) renvoie le premier de ces n° de lignes.
INDEX(Davayat!B$1:B$23;PETITE.VALEUR(.......)) renvoie le nom dans la plage B1:B23 correspondant à ce premier n° de lignes.
Dans la ligne en dessous, le LIGNE(1:1) devient LIGNE(2:2), donc la formule renvoie le nom correspondant au second n° de la liste des n° de lignes contenant des x dans les colonnes correspondant à la date dans A1.
Cela ne fonctionne ainsi que parce que la formule est matricielle. C'est cela qui fait qu'on obtient une liste de n°, et qu'on sélectionne un de ces n° avec le PETITE.VALEUR(.....;LIGNE(...:...)).
Pour voir ce que donne une formule : ---> Formules --> Evaluation de formule --> Pas à pas détaillé.
@ plus