Calcul automatique d'un effectif en fonction d'une date sous excel.

shynes

XLDnaute Nouveau
Bonjour, je me permets de poster pour la première fois un message sur ce forum.
En effet, comme mentionner dans le titre de la discussion, j'ai besoin qu'un calcul automatique de l'effectif présent et absent de l'entreprise se fasse en fonction de la date ou nous sommes.

Par exemple l'entreprise compte 30 employés avec 15 cadres et 15 ouvriers.
Ce samedi 24 octobre 2020 il y a 10 cadres et 8 ouvriers d'absents.
Comment faire pour afficher le nombre correct de cadres et d'ouvriers présent pour lendemain et les jours d'après en fonction des absences de chacun, sachant que l'effectif évolue chaque jour?
J'ai mis en pièce jointe un brouillon de ma feuille Excel.
-> comme vous verrez dans la pièce jointe j'arrive à le faire pour une journée mais je ne vois pas comment faire la même chose de façon automatique dès que l'on change de jour.

Merci d'avance pour vos coups de main.
 

Pièces jointes

  • Calendrier.xlsx
    36.6 KB · Affichages: 17

shynes

XLDnaute Nouveau
Bonjour à tous,

Un proposition :
Salut, merci d'avoir apporter une réponse à ma problématique. j'ai pris du temps pour répondre car je voulais tester le tableau samedi, hier et aujourd'hui.
Tout fonctionne correctement ! je te remercie pour ton aide.

Cependant j'ai deux autres problématique ! par rapport a ce même tableau !
- Je voudrais que les jours fériés soit en rouge dans le calendrier, mais je n'y arrive pas. Ma formule qui est dans la mise en forme conditionnelle par rapport à la feuille2 du classeur (=NB.SI.ENS(Feuil2!$B$3:$B$15;$C$19)>0) me permets de mettre tous le mois ou il y a un jour férié en rouge mais moi je voudrais juste le jour et pas le mois entier comme s'est fait pour les week-end.

- Je voudrais supprimer les colonnes du calendrier dont le mois ne contient pas 31 jours (par exemple le mois de février et tous les autres mois ou le nombre de jour serait inférieur à 31)
j'ai créer cette macro mais, elle enlève tous les jours du calendrier :

Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 31 To 33 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(19, Num_Col)) >= Cells(1, 1) Then
Columns(Num_Col).Hidden = True
Else
Columns(Num_Col).Hidden = False
End If
Next
Range("C20:AG81").ClearContents 'Supprime le contenu dans les cellules
End Sub

Merci d'avance pour les réponse apportées.
 

djidji59430

XLDnaute Barbatruc
Bonjour à tous,

Tes dates ont un format fantaisistes dans le tableaux des fériés
Verifie en les mettant en standard que ce sont bien des dates et reviens avec un tableau correct
pb 2 : et si tu supprimes les mois de ta liste déroulante ?
Autrement, je suis nul en VBA.
MFC pour les fériés :

Crdlmt
 

Pièces jointes

  • Calendrier.xlsx
    31.5 KB · Affichages: 11
Dernière édition:

shynes

XLDnaute Nouveau
Bonjour à tous,

Tes dates ont un format fantaisistes dans le tableaux des fériés
Verifie en les mettant en standard que ce sont bien des dates et reviens avec un tableau correct
pb 2 : et si tu supprimes les mois de ta liste déroulante ?
Autrement, je suis nul en VBA.
MFC pour les fériés :

Crdlmt
Merci pour ton fichier joint, je l'ai modifier pour l'adapter au "vrai" tableau. Tout est ok pour les jours férié.
Pas de soucis pour le Visual Basic ^.^
J'espère que quelqu'un pourra m'aider en modifiant ma macro ou en me proposant une autre façon :

Je voudrais supprimer les colonnes du calendrier dont le mois ne contient pas 31 jours (par exemple le mois de février et tous les autres mois ou le nombre de jour serait inférieur à 31)
j'ai créer cette macro mais, elle enlève tous les jours du calendrier :

Sub Masquer_Jour()
Dim Num_Col As Long
For Num_Col = 31 To 33 ' Boucle sur les cellules des jours 29, 30 et 31
If Month(Cells(19, Num_Col)) >= Cells(1, 1) Then
Columns(Num_Col).Hidden = True
Else
Columns(Num_Col).Hidden = False
End If
Next
Range("C20:AG81").ClearContents 'Supprime le contenu dans les cellules
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 131
Messages
2 116 573
Membres
112 792
dernier inscrit
Jean-Marc YOT