Arghhhhhhhhhhhhhhhhhhhhhhhhhhhh !
je me meurs
une formule qui coupe le souffle
on ne peut même pas être jaloux, puisqu'on ne saura jamais faire...
Mais il faut croire que pour étudier ta formule sa fait grave mal à la tête parce que je doit l'integrer dans mon projet.
Non la formule est très simple et logique, même pas matricielle !
Ceci LIGNE()-LIGNE($D$6) donne en quelle que sorte l'index de la liste valide
si la valeur est 1, j'affiche "Fournisseurs"
SI(LIGNE()-LIGNE($D$6)=1;$B$6;
si elle est égale au nombre de fournisseurs +2, j'affiche les tirets
SI(LIGNE()-LIGNE($D$6)=NB.SI(TabF[Fournisseurs];"<>0")+2;"---------------------------";
si elle est égale au nombre de fournisseurs +3, j'affiche "Clients"
SI(LIGNE()-LIGNE($D$6)=NB.SI(TabF[Fournisseurs];"<>0")+3;$C$6;
sinon, tant que la valeur est plus faible que le nombre de fournisseurs, j'affiche le nom du fournisseur selon l'index
SI(LIGNE()-LIGNE($D$6)<=NB.SI(TabF[Fournisseurs];"<>0")+1;INDEX(TabF[Fournisseurs];LIGNE()-LIGNE($D$6)-1);
sinon, tant que la valeur est plus faible que le nombre de clients mais plus fort que le nombre de fournisseurs, j'affiche le nom du client selon l'index, en tenant compte des titres insérés
SI(LIGNE()-LIGNE($D$6)<=NB.SI(TabF[Fournisseurs];"<>0")+NB.SI(TabC[Clients];"<>0")+3;INDEX(TabC[Clients];LIGNE()-LIGNE($D$6)-NB.SI(TabF[Fournisseurs];"<>0")-3)