Microsoft 365 Compter les cellules non vides dans un tableau selon plusieurs critères

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour à vous les experts d'EXCEL,

Je viens vers vous, car malgré tous les sujets et posts que j'ai lus, je n'arrive pas à trouver la solution à mon problème.

En effet, je dois préparer un tableau de bord pour les demandes et accords d'absences du personnel ; tableau qui m'a déjà demandé beaucoup d'heures de travail.
Sur chaque ligne, je dois saisir le nom du salarié, son poste, si c'est une "DEMANDE" ou un "ACCORD" de la hiérarchie, son motif d'absence dans la cellule correspondante. (Par la suite, j'aimerais pouvoir automatiser la saisie des dates en lien avec un autre onglet SAISIE DATES (mais chaque chose en son temps).

Dans l'onglet "SUIVI", j'aimerais pouvoir afficher le nombre de jour d'absences ACCORDES
- pour un salarié en particulier
- la période de référence (du 01/01 au 31/01 par exemple)
- le motif d'absence : CP, RTT, maladie, formation...
dans les cellules B13 à G13

Et faire un même récap, pour plusieurs salariés.

Je ne sais faire que les totaux d'une personne sur une année.

J'ai mis quelques noms, mon tableau étant prévu pour 250 lignes.

Je compte vraiment sur votre aide.

Merci d'avance.

Bonne fin de journée.
 

Pièces jointes

  • EXCEL - Gestionnaire Absences.xlsx
    384 KB · Affichages: 24

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir @LAETI-TOINOU,

J'ai créer un tableau structuré sur les 14 premières colonnes de ton tableau, je l'ai nommé "_tb" et j'ai ajouté 4 noms utilisés dans les formules :
_Date_Déb=SUIVI!$C$11
_Date_Fin=SUIVI!$F$11
_lgn_Dates=SUIVI!$P$16:$SF$16
_Salarié=SUIVI!$D$12
_Lgn_Sal=DECALER(_lgn_Dates;EQUIV(_Salarié;_tb[NOM];0);0)

Les 4 premiers sont statiques, le 5ième évoluera avec le nombre de lignes du tableau structuré.
(Un conseil : Nomme tes tableaux structurés, les noms par défaut ne sont pas très parlant !)

Amicalement
Alain
 

Pièces jointes

  • Gestionnaire Absences.xlsx
    386.3 KB · Affichages: 26
C

Compte Supprimé 979

Guest
Re,

Si j'ai bien compris, une formule toute "simple" à mettre ne B13 à recopier vers la droite
VB:
=NB.SI(DECALER($N$16;EQUIV($D$12;$N$17:$N$21;0);3;1;485);B$16)

485 est le nombre de colonnes actuellement dans le fichier donné

A+
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour @LAETI-TOINOU ,
Bonjour,
Merci de ta réponse.
Par contre, il manque une condition : que les cellules O17 jusque O.... contiennent "Accord".

OK je n'avais pas vu dans ton 1er post...

J'ai modifié les formules et les noms définis pour en tenir compte.
Noms définisFormules
_Salarié=SUIVI!$D$12
_Date_Déb=SUIVI!$C$11
_Date_Fin=SUIVI!$F$11
_lgn_Dates=SUIVI!$P$16:$SF$16
_Données=DECALER(_lgn_Dates;1;0;LIGNES(_tb))
_Idx_Sal=EQUIV(_Salarié;_tb[NOM];0)
_lgn_Sal=INDEX(_Données;_Idx_Sal;0)
_Accord=--(INDEX(_tb[Demande Accord];_Idx_Sal)="Accord")

Voir le classeur en PJ
Amicalement
Alain
PS : Mon Pseudo remplace mon nom en clair.
 

Pièces jointes

  • Gestionnaire Absences.xlsx
    387 KB · Affichages: 6

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour @LAETI-TOINOU ,


OK je n'avais pas vu dans ton 1er post...

J'ai modifié les formules et les noms définis pour en tenir compte.
Noms définisFormules
_Salarié=SUIVI!$D$12
_Date_Déb=SUIVI!$C$11
_Date_Fin=SUIVI!$F$11
_lgn_Dates=SUIVI!$P$16:$SF$16
_Données=DECALER(_lgn_Dates;1;0;LIGNES(_tb))
_Idx_Sal=EQUIV(_Salarié;_tb[NOM];0)
_lgn_Sal=INDEX(_Données;_Idx_Sal;0)
_Accord=--(INDEX(_tb[Demande Accord];_Idx_Sal)="Accord")

Voir le classeur en PJ
Amicalement
Alain
PS : Mon Pseudo remplace mon nom en clair.
Merci pour ta formule. Formule que je ne comprends pas forcément bien, ne maitrisant pas suffisamment EXCEL.
 

LAETI-TOINOU

XLDnaute Occasionnel
Bonne Nuit @LAETI-TOINOU 😩

Je viens d'ajouter un onglet mémo au classeur où j'ai placé des explications.
Bonne lecture

Amicalement
Alain
Bonjour Alain,
Je te remercie pour ce mémo, qui me permet de mieux comprendre les formules.
Par contre, je m'aperçois que je suis encore très loin du résultat attendu.
En effet, au jour d'aujourd'hui, le planning commence au 01/01/21, pour se terminer en avril de l'année prochaine.
Le but de ce support est que je puisse faire évoluer les dates ; qu'il puisse par exemple commencer le 01/06/21 et que les dates d'absences puissent se mettre automatiquement à jour. Tel que mon fichier est conçu, lorsque je change la date de début de planning, les dates d'absences ne bougent pas, du fait que je saisisse directement celles-ci sur le planning, sans passer par des formules. Le personnel doit pouvoir poser 6 semaines de congés, 12 RTT (par journée entières ou demie-journée), plus tous les autres motifs d'absences.
Peux-tu m'aider une nouvelle fois sur ce sujet, ou faut-il que je fasse une autre demande ?
Merci de ta réponse.

Amicalement
Laëtitia
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir @LAETI-TOINOU

Je me penche sur ton projet et j'ai d’emblée 2 questions :
  1. Est-ce-qu'un salarié peut avoir des 1/2 journée pour tous les types d’absence ?
  2. Et si oui est-ce qu'il peut combiner 2 1/2 journées avec 2 types d’absence différents (ex : pour une même journée 1/2 CP + 1/2 RTT)
Ça peut compliquer un peu le projet !

Je pense qu'il faut faire un formulaire de saisie des absences, qui renseignera une table et que ton onglet Suivi vienne lire cette table (par formules ou par macros).
Tu as prévu 2 états d'absence mais je me demande qui renseigne les demandes d’absence et qui les valide. Saisie par les salariés, validation par la hiérarchie, contrôle par un contrôleur (peut-être toi).
Où est-ce que tu fais tout à partir de documents papiers (style document de demande ou de régularisation d'absence) et que tu contrôles le nombre d'absences déjà accordées pour chaque type possible.

Bon j'aurai d'autres questions, mais peux-tu déjà me répondre à celles-ci ?

Amicalement
Alain
 

Discussions similaires