Bonjour tout le monde
Ci-joint un fichier
La plage du salarié est déterminé par calcul, je l'ai nommé dans la boîte de dialogue (Menu Insertion/Nom/Définir...)
=SI(NB.SI(Feuil1!$A:$A;Feuil1!$G2)=0;Feuil1!$A$1:$D$1;DECALER(Feuil1!$A$1:$D$1;EQUIV(Feuil1!$G2;Feuil1!$A:$A;0)-1;;NB.SI(Feuil1!$A:$A;Feuil1!$G2)))
Petite particularité, la valeur retournée est variable, elle est tributaire de la cellule Feuil1!$Gx, la formule ci-dessus est uniquement valable pour les cellules de la plage H2:AE2.
Pour construire le tableau, dans chaque cellules des colonnes H:AE, il y a cette formule.
=SI(OU(LIGNE(PlageduSalarié)=1;G2='';LIGNES(PlageduSalarié)<NB.SI($G$1:H$1;H$1));'';INDEX(PlageduSalarié;NB.SI($G$1:H$1;H$1);MOD(COLONNES($H1:H1);3)+SI(MOD(COLONNES($H1:H1);3)=0;3;1)))
Cette partie sert de gestion d'erreur.
OU(LIGNE(PlageduSalarié)=1;G2='';LIGNES(PlageduSalarié)<NB.SI($G$1:H$1;H$1))
L'autre partie, retourne les valeurs en fonction du positionnement de la cellule dans le tableau.
INDEX(PlageduSalarié;NB.SI($G$1:H$1;H$1);MOD(COLONNES($H1:H1);3)+SI(MOD(COLONNES($H1:H1);3)=0;3;1))
NB.SI($G$1:H$1;H$1) retourne le n° de la ligne de la plagedusalarié à afficher.
MOD(COLONNES($H1:H1);3)+SI(MOD(COLONNES($H1:H1);3)=0;3;1) retourne le n° de la colonne de la plagedusalarié
J'espère que j'ai été 'explicite' pour que tu puisses créer ton propre tableau.
@+Jean-Marie [file name=malingrey.zip size=10496]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/malingrey.zip[/file]