Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Decaler

1 réponse
Avatar
Billylaroche
Bonjour,

J'ai un souci. J'ai appliqué une formule géniale qu'on m'a suggéré sur ce
site et tout fonctionnait à merveille. Pour se mettre dans le contexte, j'ai
un fichier
Excel comprenant 2 feuilles. La feuille 1 est la liste de présence des
employés et la feuille 2 intitulé 2009, est le calendrier de vacances. Dans
la feuille 1, pour chaque employé, cette formule ci-bas est appliquée pour
vérifier si dans le
calendrier il est inscrit en vacances ou non.

Donc, dans la feuille List, voici mes formules :
(...)

Employé 5 (tout fonctionne
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$49:$G$55;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Employé 6 : (tout fonctionne
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$60:$G$66;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Employé 7: (ne fonctionne plus
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$71:$G$77;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Ca fonctionne à merveille pour les 6 premiers employés seulement! Pour les
autres employés, tout est décaler de 2 employés. Exemple, dans le calendrier,
l'employé 10 est en vacances, mais dans ma liste de la feuille 1 il m'inscrit
la vacances à l'employé 11.

Auriez-vous une idée quel est mon erreur?Selon moi, je ne maîtrise pas bien
la fonction Decaler. Je trouve drôle que pour les 6 premiers employés ca
marche et pas pour les autres c'est décaler. Je ne comprends pas la portion
(+(LIGNE()-4)*10;0) de la formule et c'est peut-être cela mon problème.

Mon calendrier est construit un peu de cette facon :

Janvier

Semaine 1 Semaine 2 Semaine 3 Semaine4
Employé 1
Dimanche
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi

Employé 2
(et ainsi de suite)

Merci beaucoup de votre aide!
--
Billy


"Daniel.C" a écrit :

> Bonjour.
> Remplace ta formule par :
> =SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$5:$G$11;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$G$2)>0;"ABSENT";"PRÉSENT")
> Cordialement.
> Daniel
>
> > Bonjour,
> >
> > J'ai une liste de présence d'employés qui est reliée à un calendrier de
> > vacances. Lorsqu'on colore une cellule du calendrier (l'onglet 2009) pour
> > indiquer qu'un employé est absent, la liste de présence (l'onglet List) se
> > met à jour. Note: après avoir coloré la cellule, il faut faire F9 pour
> > actualiser.
> >
> > http://cjoint.com/?mfo4XiKCGK
> >
> > Mon problème est le suivant : lorsque j'étend ma plage de recherche dans ma
> > fonction sur les autres semaines de l'année, ça ne fonctionne plus!
> >
> > Quelqu'un aurait peut-être une idée pour m'aider!
> > Merci à LSteph et Jacquouille qui m'ont donné des pistes de solutions déjà
> > sur une partie de ma solution.
> >
> > J'y suis presque maintenant! Alors si quelqu'un a une idée soit en VBA ou
> > non, ce serait génial.
> >
> > Merci à tous de votre aide!
>

--
Billy

1 réponse

Avatar
Billylaroche
Bonjour,

Quel casse-tête, je me rends compte que si je garde la même formule pour
tous les employés, soit
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$49:$G$55;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

...et bien le résultat est le même! Je ne comprends vraiment pas pourquoi
les 6 premiers employés ca fonctionne parfaitement et ensuite, dans ma liste,
il m'affiche la vacances à l'employé suivant. Exemple : la vacances inscrite
à l'employé 10 sur le calendrier, l'affiche à l'employé 11 sur la liste.

Quel casse-tête! Un beau merci à ceux ou celles qui tenteront de m'aider à y
voir plus clair. Je vois que je ne maîtrise vraiment pas la fonction décaler.

Salutations,

--
Billy


"Billylaroche" a écrit :

Bonjour,

J'ai un souci. J'ai appliqué une formule géniale qu'on m'a suggéré sur ce
site et tout fonctionnait à merveille. Pour se mettre dans le contexte, j'ai
un fichier
Excel comprenant 2 feuilles. La feuille 1 est la liste de présence des
employés et la feuille 2 intitulé 2009, est le calendrier de vacances. Dans
la feuille 1, pour chaque employé, cette formule ci-bas est appliquée pour
vérifier si dans le
calendrier il est inscrit en vacances ou non.

Donc, dans la feuille List, voici mes formules :
(...)

Employé 5 (tout fonctionne)
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$49:$G$55;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Employé 6 : (tout fonctionne)
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$60:$G$66;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Employé 7: (ne fonctionne plus)
=SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$71:$G$77;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$E$2)>0;"ABSENT";"PRÉSENT")

Ca fonctionne à merveille pour les 6 premiers employés seulement! Pour les
autres employés, tout est décaler de 2 employés. Exemple, dans le calendrier,
l'employé 10 est en vacances, mais dans ma liste de la feuille 1 il m'inscrit
la vacances à l'employé 11.

Auriez-vous une idée quel est mon erreur?Selon moi, je ne maîtrise pas bien
la fonction Decaler. Je trouve drôle que pour les 6 premiers employés ca
marche et pas pour les autres c'est décaler. Je ne comprends pas la portion
(+(LIGNE()-4)*10;0) de la formule et c'est peut-être cela mon problème.

Mon calendrier est construit un peu de cette facon :

Janvier

Semaine 1 Semaine 2 Semaine 3 Semaine4
Employé 1
Dimanche
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Samedi

Employé 2
(et ainsi de suite)

Merci beaucoup de votre aide!
--
Billy


"Daniel.C" a écrit :

> Bonjour.
> Remplace ta formule par :
> =SI(NBCOLOR(DECALER(DECALER('2009'!$G$4;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));EQUIV($B$1;DECALER('2009'!$G$5:$G$11;;EQUIV($B$1;'2009'!$H$2:$BG$2;1));0)+(LIGNE()-4)*10;0);'2009'!$G$2)>0;"ABSENT";"PRÉSENT")
> Cordialement.
> Daniel
>
> > Bonjour,
> >
> > J'ai une liste de présence d'employés qui est reliée à un calendrier de
> > vacances. Lorsqu'on colore une cellule du calendrier (l'onglet 2009) pour
> > indiquer qu'un employé est absent, la liste de présence (l'onglet List) se
> > met à jour. Note: après avoir coloré la cellule, il faut faire F9 pour
> > actualiser.
> >
> > http://cjoint.com/?mfo4XiKCGK
> >
> > Mon problème est le suivant : lorsque j'étend ma plage de recherche dans ma
> > fonction sur les autres semaines de l'année, ça ne fonctionne plus!
> >
> > Quelqu'un aurait peut-être une idée pour m'aider!
> > Merci à LSteph et Jacquouille qui m'ont donné des pistes de solutions déjà
> > sur une partie de ma solution.
> >
> > J'y suis presque maintenant! Alors si quelqu'un a une idée soit en VBA ou
> > non, ce serait génial.
> >
> > Merci à tous de votre aide!
>

--
Billy