XL 2016 BDD saisie sur calendrier pour gestion absences

mthlcrx

XLDnaute Nouveau
Bonjour,

dans le cadre professionnel, je souhaite mettre à jour mon vieux fichier pour la gestion des absences des salariés.
En effet, avant j'avais un onglet par mois et je saisissais les données sur chacun d'entre eux pour avoir un récap annuel sur un dernier onglet.

Aujourd'hui, je souhaiterai avoir que deux onglets : un pour les mois qui défilent via une barre (Calendrier) et un pour une base de données qui répertorie les saisies (BDD)
Seul hic, je n'arrive pas à faire le lien entre les deux. C'est à dire que j'aimerai que l'onglet BDD soit lu pour une mise à jour de l'onglet Calendrier lors des changements de mois pour prise en compte des différentes saisies liées au mois en cours. Je ne sais vraiment pas par quel bout commencer.

Je vous joins mon fichier de travail.
Merci à tous.
 

Pièces jointes

  • Calendrier absences.xlsm
    68.1 KB · Affichages: 37

mthlcrx

XLDnaute Nouveau
Bonsoir,
l'applicatif est intéressant mais ne répond pas à ma demande.

Etant conscient que 300 applicatifs du même genre existent déjà, je souhaite créer le mieux et donc juste savoir comment il est possible de faire appel au contenu de certaines cellules d'une feuille pour pouvoir, de manière dynamique, remplir le calendrier du mois sélectionné sur une autre feuille.
 

GALOUGALOU

XLDnaute Accro
bonsoir le forum bonsoir le fil
re mthlcrx
C'est vraiment une autre conception. Il faut reconcevoir totalement le fonctionnement du classeur

Je vous apporte un début de réponse.
Dans votre feuille calendrier (planning) cette formule matricielle.
VB:
=SIERREUR(INDEX(BDD!$A$4:$E$997;EQUIV(1;(Planning!C$4>=BDD!$D$4:$D$1000)*(BDD!$E$4:$E$1000>=Planning!C$4)*(BDD!$B$4:$B$500=Planning!$B5);0);3);"")
Dans votre feuille BDD une colonne en plus pour gérer les dates. (début et fin)
dans le planning des mfc pour la mise en couleur
Neutralisation de l'événement feuille de la feuille calendrier ("Planning"). Dans cette même feuille saisir l'année en cellule A2, le mois en chiffre en cellule B2.(faites des tests avec janvier février mars.)

attention : aucune saisie dans la feuille Planning,( l'information de la colonne C de la feuille BDD étant renvoyé par des formules, il faudra protéger la feuille)

Tout cela demande à être développé, mais avant tout, tester cette solution, et si elle vous convient on pourra vous donner d'autre piste pour faire évoluer votre classeur.
cdt
galougalou
 

Pièces jointes

  • Copie de Calendrier absences.xlsm
    82 KB · Affichages: 20
Dernière édition:

fronck

XLDnaute Junior
Bonjour à tous,
J'ai fait un fichier de gestion des absences annuel de 06/n à 05/n+1, avec ces absences, qui devrait vous intéresser :
EP3.png

On peut modifier ces type d'absences, il y a un visu par mois/personne onglet mois), un récap par salarié et année/mois. et il y a une saisie formulaire avec calendrier de saisie:
EP2.png

Qu'en pensez-vous ?
Mais sinon la version de galougalou est pas mal, avec peut-être une liste déroulante sur le chiffre du mois en B2 du planning ;)
 

Pièces jointes

  • ABSENCES 2021 22 EP V2.xlsm
    144.9 KB · Affichages: 29
Dernière édition:

mthlcrx

XLDnaute Nouveau
Bonjour à tous les deux,

Galougalou, la version proposée est opérationnelle pour mon besoin et je vous en remercie.
Néanmoins, je suis toujours intéressé par une solution où la saisie des absences se fait sur l'onglet "Planning" avec remplissage de la BDD. Le changement de mois via la barre de défilement ou liste déroulante (peu importe) lirait cette BDD pour remplir automatiquement les absences des agents sur le mois en question.
Vous évoquez que cette solution demande une totale refonte du classeur, pouvez-vous m'en dire plus svp ?
 

GALOUGALOU

XLDnaute Accro
re
Sur votre fichier, je vous propose un début de solution, qui sera peaufiné dans les prochains jours.
Le principe
Dans la feuille planning, vous faites une sélection à la souris.
Vous cliquer sur le bouton ouvrir le formulaire, celui-ci sera prérempli. (les dates restent modifiables)
Vous choisissez votre légende et vous validez.
Pas plus compliqué que ça
Les informations sont stockées dans la feuille BDD ou un tableau structuré a été inséré.
Dans les feuilles Planning et BDD, suite à une erreur de saisie s'il y a un chevauchement de date, il y aura une alerte rouge avec information.
planning.gif

cdt
galougalou
 

Pièces jointes

  • Copie de Calendrier absences.xlsm
    132.6 KB · Affichages: 16
Dernière édition:

GALOUGALOU

XLDnaute Accro
bonjour le fil
re mthlcrx
dans la v3 une amélioration du formulaire, (sur sélection d'un collaborateur, les congés validés de celui-ci sont visibles dans une listbox)
Dans la feuille BDD un bouton permet de supprimer les informations des dates dépassées. L'historique est gardé en fonction du nombre de jours saisi en cellule M1
la macro contrôle si un filtre a été posé.
VB:
Sub depose_filtre()
Dim Lst As ListObject
Set Lst = ActiveWorkbook.Worksheets("BDD").ListObjects("Tableau1")
  If Lst.AutoFilter.FilterMode Then
    Lst.AutoFilter.ShowAllData
  End If
End Sub

Sub SUPPRIMER()
 Call depose_filtre
Dim J As Integer
With Sheets("BDD")
.Unprotect
li = .Cells(.Rows.Count, 1).End(xlUp).Row
  For J = li To 4 Step -1
     If .Range("E" & J) < Date - .Range("M1") Then .Rows(J).Delete
  Next J
  .Protect
  End With
End Sub
cdt
galougalou
 

Pièces jointes

  • Copie de Calendrier absences v3.xlsm
    136.8 KB · Affichages: 12

mthlcrx

XLDnaute Nouveau
Bonjour à tous,

merci pour cette nouvelle version.
A quoi correspond le contenu de la ligne 2 sur la feuille BDD ?
Est-il possible de ne pas mettre de congés sur les we quand on saisit une période de plusieurs semaines ?
Je regarde plus en détail le fichier pour essayer d'y apporter cette modification.
 

GALOUGALOU

XLDnaute Accro
re
En attendant de trouver une solution plus discrète, la ligne 2 sert à identifier les chevauchements de date, ce qui bloquera le formulaire si un chevauchement est identifié. Il est possible de choisir comme police d’écriture blanc afin de rendre les informations invisibles
pour la deuxième question, dans la formule, il suffirait de faire un test sur la date avec si.
je regarde en soirée
Cdt
galougalou
 

GALOUGALOU

XLDnaute Accro
re
jolie formule pour répondre à votre problématique (formule matricielle en C5 à étirer sur toute la zone Planning)
VB:
{=SIERREUR(SI(NB.JOURS.OUVRES.INTL(C$4;C$4;1;Fer)=1;INDEX(BDD!$A$4:$E$990;EQUIV(1;(Planning!C$4>=BDD!$D$4:$D$993)*(BDD!$E$4:$E$993>=Planning!C$4)*(BDD!$B$4:$B$493=Planning!$B5);0);3);"");"")}

Ce n'était pas obligatoire, mais j'ai modifié votre gestion des jours fériés. En B1, l'année du jour actuel est actualisé en cellule B1. Les jours fériés seront ceux de l'année en cours, l'année précédente, l'année suivante.
Vous allez trouver une zone de couleur jaune, ou vous pourrez saisir des dates aléatoires. Je pense au pont entre les week-ends et les jours fériés ou les fériés particuliers à certaine zone géographique. Si vous saisissez une date, celle-ci sera neutralisée dans le planning. L'ensemble de la zone est dénommé Fer

cdt
galougalou
 

Pièces jointes

  • Copie de Calendrier absences v4.xlsm
    133.2 KB · Affichages: 33

Discussions similaires

Réponses
9
Affichages
392

Statistiques des forums

Discussions
312 161
Messages
2 085 844
Membres
103 004
dernier inscrit
ponas