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: 23

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour Alain, bonjour tout le monde,

Il est 20h00, j'ai essayé d'adapter les formules, comme tu m'as conseillé de faire (malgré les explications que tu m'as laissées sur chaque fichier), mais je n'y arrive vraiment pas.

Je pense qu'il faut créer une autre feuille car si l'effectif complet est de 250, pour voir les disponibilités il faudra descendre en bas du planning. Et il faudra gérer les variations de l'effectif complet...
Je regarde et je te donne des pistes pour avancer.

EXCEL a eu raison de moi.

J'ai encore besoin d'un petit coup de pouce sur ce coup là.

Merci d'avance Alain.

Bonne soirée

Laëtitia
 

AtTheOne

XLDnaute Occasionnel
Bonsoir Laëtitia (@LAETI-TOINOU) bonsoir le forum.

J'ai eu raison des fuites (occupation plomberie) !

J'ai eu raison d'Excel (occupation Laëtitia) !

J'ai ajouté l'effectif dans le tableau "_tb_Emploi" (à compléter manuellement onglet "Tables")

J'ai rajouté, à regret, dans l'onglet BdD le service et le poste.

Puis je t'ai créé dans l'onglet "Suivi Absences" une zone de surveillance des effectifs présents pour chaque date du planning.

D'abord comme tu l'avais commencé en reprenant le contenu du tableau "_tb_Emploi" mais par une formule matricielle dynamique (un filtre avec toutes les lignes !)
Puis en ajoutant, alignée avec le planning, une formule matricielle dynamique qui ressemble beaucoup à celle du projet de prêt de matériel : ça fonctionne (avec un nb.si.ens à la place du somme.si.ens)

Pour respecter ton souhait de voir le suivi de l'effectif présent sur l'onglet "Suivi Absences", j'ai modifier le VBA pour décaler automatiquement cette zone de surveillance en fonction des variations de l'effectif global.

Pour revenir sur les formules matricielles dynamiques, si tu affectes un nom à la cellule qui contient la formule ce nom suivi de # fait référence à la plage qu'occupe la formule (_X0#, _Planning# etc).

Je t'ai fait un mode opératoire pour les flèches de l'onglet Mémo.

Voilà, tu dormiras peut-être mieux si tu vois mon message ce soir.

Amicalement
Alain
 

Pièces jointes

  • Gestionnaire Absences type II v04.xlsm
    735.7 KB · Affichages: 3
  • Flèches légendes.docx
    121.1 KB · Affichages: 7

LAETI-TOINOU

XLDnaute Occasionnel
Bonsoir Laëtitia (@LAETI-TOINOU) bonsoir le forum.

J'ai eu raison des fuites (occupation plomberie) !

J'ai eu raison d'Excel (occupation Laëtitia) !

J'ai ajouté l'effectif dans le tableau "_tb_Emploi" (à compléter manuellement onglet "Tables")

J'ai rajouté, à regret, dans l'onglet BdD le service et le poste.

Puis je t'ai créé dans l'onglet "Suivi Absences" une zone de surveillance des effectifs présents pour chaque date du planning.

D'abord comme tu l'avais commencé en reprenant le contenu du tableau "_tb_Emploi" mais par une formule matricielle dynamique (un filtre avec toutes les lignes !)
Puis en ajoutant, alignée avec le planning, une formule matricielle dynamique qui ressemble beaucoup à celle du projet de prêt de matériel : ça fonctionne (avec un nb.si.ens à la place du somme.si.ens)

Pour respecter ton souhait de voir le suivi de l'effectif présent sur l'onglet "Suivi Absences", j'ai modifier le VBA pour décaler automatiquement cette zone de surveillance en fonction des variations de l'effectif global.

Pour revenir sur les formules matricielles dynamiques, si tu affectes un nom à la cellule qui contient la formule ce nom suivi de # fait référence à la plage qu'occupe la formule (_X0#, _Planning# etc).

Je t'ai fait un mode opératoire pour les flèches de l'onglet Mémo.

Voilà, tu dormiras peut-être mieux si tu vois mon message ce soir.

Amicalement
Alain
Bonjour Alain, Bonjour tout le monde,

Encore un grand merci pour ce beau travail.

Effectivement, ça fait beaucoup de lignes à consulter en fin de planning.

Peut-on (là je pense que tu vas me dire que j'exagère, mais j'ai tendance à être perfectionniste, et avant que ma hiéarchie ne me le fasse remarquer) ne filtrer que certains services et/ou postes.

Il est vrai que dans ma société, la personne qui valide les demandes de CP du personnel de chantier, n'est pas la même personne que celle qui valide le personnel administratif.

Quand on valide les absences des chauffeurs, des maçons, des chefs de chantiers.... on n'a pas besoin de connaitre le nombre de secrétaires et/ou de comptables....

Tu crois pouvoir encore m'aider sur ce dernier (je l'espère) point ?

Un grand merci d'avance puissance 1000.

Bonne journée.


Laëtitia


J'espère que vous avez passé un bon week-end.
 

AtTheOne

XLDnaute Occasionnel
Bonjour Laëtitia (@LAETI-TOINOU ) bonjour le forum,
Peut-on (là je pense que tu vas me dire que j'exagère, mais j'ai tendance à être perfectionniste, et avant que ma hiéarchie ne me le fasse remarquer) ne filtrer que certains services et/ou postes.

Il est vrai que dans ma société, la personne qui valide les demandes de CP du personnel de chantier, n'est pas la même personne que celle qui valide le personnel administratif.

Quand on valide les absences des chauffeurs, des maçons, des chefs de chantiers.... on n'a pas besoin de connaitre le nombre de secrétaires et/ou de comptables....

Voilà
la formule est :
Enrichi (BBcode):
=FILTRE(_tb_Emploi;SI(_Filtre_Service="";_tb_Emploi[Service]<>"";_tb_Emploi[Service]=_Filtre_Service)*SI(_Filtre_Poste="";_tb_Emploi[Poste]<>"";_tb_Emploi[Poste]=_Filtre_Poste))
Explications :

_Filtre_Service et _Filtre_Poste étant les valeurs sur lesquelles filtrer, _tb_Emploi étant le tableau contenant la liste des emplois par service avec les effectifs, la formule en cellule _ET devient :

=FILTRE( 'la Fonction Matricielle Dynamique FILTRE
_tb_Emploi ; 'le tableau structuré filtré
SI( _Filtre_Service = "" ; _tb_Emploi[Service] <> "" ; _tb_Emploi[Service] = _Filtre_Service)
'Critère 1 : si le filtre service est vide, tous les services non vides, sinon le service filtré
* 'La multiplication des 2 critères correspond à un ET logique
SI( _Filtre_Poste = "" ; _tb_Emploi[Poste] <> "" ; _tb_Emploi[Poste] = _Filtre_Poste )
' Critère 2 : si le filtre poste est vide, tous les postes non vides, sinon le poste filtré
)

Amicalement

Modif : Oups ! j'avais oublié de déprotéger les 2 cellules modifiables.
Modif 2 : Affichage de la formule telle quelle, reprise de l'explication de la formule

Alain
 

Pièces jointes

  • Gestionnaire Absences type II v05.xlsm
    740 KB · Affichages: 16
Dernière édition:

LAETI-TOINOU

XLDnaute Occasionnel
C'est vraiment génial.
C'est avec ce genre de fichier que l'on peut voir tout le potentiel de ce logiciel, et ça donne vraiment envie de développer ses connaissances.

Par contre je n'arrive pas à la reproduire.
Si je veux essayer de la refaire, il faut se remettre sur une cellule vide et taper quelle synthèse, car je n'arrive pas à la reproduire avec une liste déroulante ?

Et peut-on, pour une meilleure lisibilité des lignes de chiffres reportés par le filtre, mettre des lignes horizontales ou des couleurs ?
Le format bordure ne me semble pas adapté, dans la mesure où le tableau peut varier sur plusieurs mois.
J'ai vu (sauf erreur de ma part) qu'on ne pouvait pas passer par des MFC.

Alors, je sèche encore une nouvelle fois.
Surtout, si j'en demande trop, fais le moi savoir.


Laëtitia
 

AtTheOne

XLDnaute Occasionnel
Bonjour Laëtitia (@LAETI-TOINOU ), bonjour visiteurs.

C'est vraiment génial.
C'est avec ce genre de fichier que l'on peut voir tout le potentiel de ce logiciel, et ça donne vraiment envie de développer ses connaissances.
  • Heureux que ça te plaise !
Par contre je n'arrive pas à la reproduire.
Si je veux essayer de la refaire, il faut se remettre sur une cellule vide et taper quelle synthèse, car je n'arrive pas à la reproduire avec une liste déroulante ?
  • De quelle formule parles-tu ?
    Commence tranquillement par des formules simples (non imbriquées et après associe les).
    Tu peux me les envoyer, et je te les décortiquerai ...
Et peut-on, pour une meilleure lisibilité des lignes de chiffres reportés par le filtre, mettre des lignes horizontales ou des couleurs ?
  • Oui, c'est fait, avec une MFC, mise à jour par macro quand la taille des plages évolue
    (module M03_Affichage_Planning, macro Format_Surveillance_Effectif)
    La macro est appelée par les événements de l'onglet Suivi qui peuvent modifier la dimension des plages concernées)
J'ai mis à jour l'onglet "Mémo" pour y incorporer les nouveaux noms que j'ai créés.

J'ai ajouté 2 liens hypertextes pour naviguer du tableau d'identification (partie suivi des absences) à la partie surveillance des effectifs présents et réciproquement.
En utilisant ces liens et des filtres (par Service = "Direction" dans le tableau d'identification, et la partie surveillance des effectifs) on réduit drastiquement le nombre de lignes à consulter. d'autant plus qu'on peut choisir une période de 1 mois pour les dates ...

Je ne suis pas bien ancien sur le forum (à mon âge ça m'amuse d'être qualifié de Junior) mais je me demande si l'on ne pourrait pas créer un nouveau fil avec un sujet plus adéquat (gestion des absences ou autre à ton goût) qui renverrai avec une petite explication vers ce fil ci. Ce afin que d'autre utilisateurs puissent le trouver plus facilement.
Est-ce-qu'un ancien pourrait nous conseiller ?

Amicalement
Alain
 

Pièces jointes

  • Gestionnaire Absences type II v05.xlsm
    744.3 KB · Affichages: 3
Dernière édition:

AtTheOne

XLDnaute Occasionnel
Laêtitia @LAETI-TOINOU

J'ai créé une correspondance pour pouvoir échanger sur d'autres sujets que ceux du forum, à toi de voir
(clic sur la petite enveloppe à droite de ton pseudo dans la banière :
1641904658561.png

Amicalement
Alain
 

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour Laëtitia (@LAETI-TOINOU ), bonjour visiteurs.


  • Heureux que ça te plaise !

  • De quelle formule parles-tu ?
    Commence tranquillement par des formules simples (non imbriquées et après associe les).
    Tu peux me les envoyer, et je te les décortiquerai ...

  • Oui, c'est fait, avec une MFC, mise à jour par macro quand la taille des plages évolue
    (module M03_Affichage_Planning, macro Format_Surveillance_Effectif)
    La macro est appelée par les événements de l'onglet Suivi qui peuvent modifier la dimension des plages concernées)
J'ai mis à jour l'onglet "Mémo" pour y incorporer les nouveaux noms que j'ai créés.

J'ai ajouté 2 liens hypertextes pour naviguer du tableau d'identification (partie suivi des absences) à la partie surveillance des effectifs présents et réciproquement.
En utilisant ces liens et des filtres (par Service = "Direction" dans le tableau d'identification, et la partie surveillance des effectifs) on réduit drastiquement le nombre de lignes à consulter. d'autant plus qu'on peut choisir une période de 1 mois pour les dates ...

Je ne suis pas bien ancien sur le forum (à mon âge ça m'amuse d'être qualifié de Junior) mais je me demande si l'on ne pourrait pas créer un nouveau fil avec un sujet plus adéquat (gestion des absences ou autre à ton goût) qui renverrai avec une petite explication vers ce fil ci. Ce afin que d'autre utilisateurs puissent le trouver plus facilement.
Est-ce-qu'un ancien pourrait nous conseiller ?

Amicalement
Alain
Bonjour Alain, bonjour tout le monde,

Wahouuuuu, c'est trop top.

J'ai ajouté 2 liens hypertextes pour naviguer du tableau d'identification (partie suivi des absences) à la partie surveillance des effectifs présents et réciproquement.
En utilisant ces liens et des filtres (par Service = "Direction" dans le tableau d'identification, et la partie surveillance des effectifs) on réduit drastiquement le nombre de lignes à consulter. d'autant plus qu'on peut choisir une période de 1 mois pour les dates ...
C'est beaucoup mieux ainsi, je confirme.

Merci Alain, merci à ce fantastique site. Sans vous, je n'en serais encore à me demander comment faire.

Je regarde une dernière fois, et je propose le document à ma hiérarchie demain.

Merci, merci, merci.


Amicalement.

Laëtitia
 

LAETI-TOINOU

XLDnaute Occasionnel
Bonjour Alain, bonjour tout le monde,

J'ai commencé à entrer la liste du personnel
Pour le moment, j'ai le matricule (qui commence systématiquement par un 0), nom, prénom et affectation.

Pour ce faire :

1/Dans l'onglet tables
J'ai remis à zéro le tableau, via le BOUTON que tu as créé

2/Dans l'onglet tables
Inscrit le matricule / nom / prénom / affectation du personnel

3/ L'onglet suivi Absences
Le report des mises à jour du personnel ne se fait pas systématiquement.

4/L'onglet BdD - Zone d'enregistrement des absences
Sur la 1ère ligne (correspondant à l'index 1), n'apparait que le numéro d'index.
Le bouton de remise à zéro ne fonctionne pas, j'ai également un messsage d'erreur.

Je joins le dernier fichier que j'avais reçu, sur lequel j'ai travaillé, et enregistré sous un nom différent, afin de ne pas perdre ma base.


Help !!!!
Car je voulais présenter un exemple concret.


Merci d'avance.


Bonne journée.


Laëtitia
 

Pièces jointes

  • Gestionnaire Absences - Version AtheOne - 9 avec MACRO - Remplissage Laeti.xlsm
    712.7 KB · Affichages: 2

AtTheOne

XLDnaute Occasionnel
Salut Laëtitia (@LAETI-TOINOU ) bonjour tout le monde

Désolé de répondre un peu tard, je n'avais pas regardé le fil et mon mobile été en mode avion : pas d'alerte!

Bon je me doutais qu'à l'initialisation sur des données réelles on rencontrerait des petits problèmes.
Mais ce n'est pas bien grave :
J'ai commencé à entrer la liste du personnel
Pour le moment, j'ai le matricule (qui commence systématiquement par un 0), nom, prénom et affectation.
  • Le premier souci viens du 0 de début du matricule qui disparait quand on le recopie dans une cellule en format standard, j'ai passé les deux colonnes "Matricule" qui étaient dans ce format, en format "Texte" (feuille Suivi, et BdD, dans la feuille Tables c'était déjà fait)
  • Deuxième souci, un bug VBA Dans la Sub Redimensionner_Lobjs() sur la ligne
    VB:
    Rows(LgnDessous).Resize(NbLgn2 - NbLgnAvant).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    que j'ai modifié en
    Code:
    Suivi.Rows(LgnDessous).Resize(NbLgn2 - NbLgnAvant).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
  • Enfin comme les macros plantent et que je désactive les événements en cours de macro, ils ne sont pas réactivés.
    Pour cela il y a une macro "réactiver" qui fait le boulot
    Code:
    'Relancer les événements
    Sub réactiver()
    Application.EnableEvents = True
    End Sub
    Tu la lances si tu vois que rien ne se passe, si tu n'as pas affiché l'onglet dévellopeur, via l'onglet Affichage (tout à droite il y a Macro, choisis Afficher les macro et double clic sur "réactiver")
  • Les autres bugs sont purement du VBA
Voilà avec cela tu es parée pour de nouvelles saisies.
Tes absences sont vides : normal pour l'instant il n'y a aucune saisie, maintenant que les matricules matchent tu peux saisir de nouvelles absences à partir de l'onglet "Suivi".

Amicalement
Alain
 

Pièces jointes

  • Gestionnaire Absences - V09 - Remplissage Laeti-1.xlsm
    929.3 KB · Affichages: 4

LAETI-TOINOU

XLDnaute Occasionnel
Salut Laëtitia (@LAETI-TOINOU ) bonjour tout le monde

Désolé de répondre un peu tard, je n'avais pas regardé le fil et mon mobile été en mode avion : pas d'alerte!

Bon je me doutais qu'à l'initialisation sur des données réelles on rencontrerait des petits problèmes.
Mais ce n'est pas bien grave :

  • Le premier souci viens du 0 de début du matricule qui disparait quand on le recopie dans une cellule en format standard, j'ai passé les deux colonnes "Matricule" qui étaient dans ce format, en format "Texte" (feuille Suivi, et BdD, dans la feuille Tables c'était déjà fait)
  • Deuxième souci, un bug VBA Dans la Sub Redimensionner_Lobjs() sur la ligne
    VB:
    Rows(LgnDessous).Resize(NbLgn2 - NbLgnAvant).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    que j'ai modifié en
    Code:
    Suivi.Rows(LgnDessous).Resize(NbLgn2 - NbLgnAvant).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
  • Enfin comme les macros plantent et que je désactive les événements en cours de macro, ils ne sont pas réactivés.
    Pour cela il y a une macro "réactiver" qui fait le boulot
    Code:
    'Relancer les événements
    Sub réactiver()
    Application.EnableEvents = True
    End Sub
    Tu la lances si tu vois que rien ne se passe, si tu n'as pas affiché l'onglet dévellopeur, via l'onglet Affichage (tout à droite il y a Macro, choisis Afficher les macro et double clic sur "réactiver")
  • Les autres bugs sont purement du VBA
Voilà avec cela tu es parée pour de nouvelles saisies.
Tes absences sont vides : normal pour l'instant il n'y a aucune saisie, maintenant que les matricules matchent tu peux saisir de nouvelles absences à partir de l'onglet "Suivi".

Amicalement
Alain
Yes,

Merci beaucoup, tu me retires une grosse épine du pied !!!!!

Que ferai-je sans ton aide :)

Je reviendrai vers toi (et la communauté) si je rencontre d'autres problèmes à la saisie.

Bonne soirée.


Laëtitia
 

Discussions similaires

Statistiques des forums

Discussions
298 001
Messages
1 965 039
Membres
200 813
dernier inscrit
MAD76