🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets

🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets



✨ Objectif du simulateur

Ce simulateur a été conçu pour gérer efficacement les congés du personnel d'une école ou d'une petite structure. Il permet :

  • D'enregistrer les périodes de congé prises par chaque salarié.

  • De calculer automatiquement les jours éligibles, hors dimanches et jours fériés.

  • De visualiser les chevauchements de congés sur un agenda annuel.

  • D'avoir un affichage par personne ou par date (vue calendrier).

⚡ Structure globale

Le simulateur est composé de deux grandes parties :

  1. Agenda individuel (par personne) avec dates, jours fériés, dimanches exclus.

  2. Calendrier global condensé où les colonnes représentent les dates, et les lignes les personnes.


📋 Partie 1 : Simulation individuelle (feuille principale)

✅ Saisie des périodes de congés

  • Période 1 : Date début N4 et date fin O4

  • Période 2 : (facultatif) Date début N5 et date fin O5

🔹 Affichage des dates dans la colonne CC

=SI(ET(N4<>""; O4<>""; N5<>""; O5<>"");
   ARRAYFORMULA({SEQUENCE(O4 - N4 + 1; 1; N4; 1); SEQUENCE(O5 - N5 + 1; 1; N5; 1)});
SI(ET(N4<>""; O4<>""; N5=""; O5="");
   ARRAYFORMULA(SEQUENCE(O4 - N4 + 1; 1; N4; 1));
""))

Cela affiche la liste complète des jours prévus pour les congés.




⛪ Gestion des jours fériés fixes

  • Colonnes CB à partir de la ligne 7 :

=SI(ET($N$4="";$CE8<>"";$CF8<>""); DATE($R$3;$CE8;$CF8);
SI(ET($N$4<>"";$R$3<>"";$CE8<>"";$CF8<>""); DATE(ANNEE($N$4);$CE8;$CF8);
""))
  • En CB20 : jours fériés de l'année suivante (si le congé dépasse le 31 décembre)

🙏 Jours fériés religieux (ligne 33)

=SI($N$4=""; FILTER(CO:CO;CN:CN=$R$3);
SI(ET($N$4<>"";$R$3<>""); FILTER(CO:CO;CN:CN=ANNEE($N$4))))

✅ Calcul des jours pris (sans dimanches ni fériés)

  • En O8 :

=SI(ET(N4<>"";O4<>"");FILTER($CC$7:$CC;$CC$7:$CC<>"");"")
  • En N8, tirer jusqu'à N100 :

=SIERREUR(SI($O8="";"";
SI(NB.SI($CB$7:$CB$63; $O8) > 0; 0;
SI(ET($O8<>""; JOURSEM($O8)=1); 0;
SI(ET($O8<>""; JOURSEM($O8)=7); 0,5;
SI(ET($O8<>""; JOURSEM($O8)<>7; JOURSEM($O8)<>1); 1)))))
  • En P5 :

=SOMME($N$8:$N$100)

🗓️ Partie 2 : Vue globale (Calendrier Simulateur Congés mois 7 & 8)

✅ Consolidation des congés depuis plusieurs feuilles :

=ARRAYFORMULA({
  FILTER('CNG MONA'!N8:P100;'CNG MONA'!N8:N100<>"");
  FILTER('CONGE AMINE'!N8:P100;'CONGE AMINE'!N8:N100<>"");
  FILTER('CNG Zahira'!N8:P100;'CNG Zahira'!N8:N100<>"")})

🗕️ Repérage des dimanches et jours fériés (U2)

=SI(ET(GAUCHE(S2;3)<>"dim";R2=0;S2<>"");" F ";
SI(ET(GAUCHE(S2;3)="dim";R2=0;S2<>"");" D ";""))

✅ Synthèse par date (V2 à Y2)

V2 : =SI(W2<>"";S2;"")
W2 : =SI(OU(R2=1;R2=0,5;R2=0);R2;"")
X2 : =SI(W2<>"";T2;"")
Y2 : =SI(W2<>"";" "&X2&" "&U2;"")

🔢 Vue type "agenda par jour" Individuelle

  • AH2 :

=TRANSPOSE(SEQUENCE(AD2 - AC2 + 1; 1; AC2; 1))
  • AH5 à CO5 (exemple pour la personne de AF5) :

=SIERREUR(INDEX(FILTER($Y:$Y; $X:$X=$AF$5; $V:$V=AH$2); 1); "")
  • AH6 à CO6 (exemple pour la personne de AF6) :

=SIERREUR(INDEX(FILTER($Y:$Y; $X:$X=$AF$6; $V:$V=AH$2); 1);"")

Tirer horizontalement pour voir jour par jour les congés de chaque personne sélectionnée.



🔢 Vue type "agenda par jour" Tous

  • En AH3 (calendrier condensé global, toutes les personnes pour chaque jour) :

=TEXTJOIN(", " & CAR(10) & " "; VRAI; AH4:AH30)

Tirer horizontalement pour voir qui a pris un congé à chaque date.

🧩 Calendrier condensé par blocs de 10 jours

  • Bloc 1 (10 jours)

    • B3 à K3 : =DW2 (tirer jusqu'à K3)

    • B4 à K4 : =DW3 (tirer jusqu'à K4)

  • Bloc 2 (10 jours suivants)

    • B8 à K8 : =EG2 (tirer jusqu'à K8)

    • B9 à K9 : =EG3 (tirer jusqu'à K9)

Fusionner les lignes 4/5/6/7 pour garder un affichage clair.




🎉 Conclusion

Ce simulateur de congés sous Google Sheets est un outil puissant, à la fois personnalisé et automatisé. Il permet au gérant d'avoir une vision claire, à la fois individuelle et globale, tout en évitant les erreurs (double prises, dépassements, etc).

🗓️ Il peut être enrichi par :

  • des graphiques de synthèse,

  • des alertes déclenchées en cas de conflit,

  • une interface Apps Script pour exporter en PDF ou par mail.

Commentaires

Posts les plus consultés de ce blog

🛠 Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

Explication VBA : Facturation automatique Gestion client