Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Encoder les congés sur un intervalle de date

!xmusaton

XLDnaute Nouveau
Bonjour à tous,

J'aurai besoin de votre aide précieuse svp.

J'ai un fichier excel pour encoder les congés du personnel, avec un calendrier dynamique qui change d'une année à une autre.

J'aimerai créer un programme qui permet, à partir d'une Userforme, d'encoder les congés sur une période définie : en sélectionnant le nom de la personne, l'intervalle de date (la date de début + la date de fin) ainsi que le type de congé (liste dans feuille "liste"), et en choisissant si c'est am (le matin) ou pm (l'après midi) - par défaut les deux sont sélectionnés (journée entière).

En appuyant sur Enregistrer les congés, les cellules du calendrier sont remplies selon les dates choisie (excepté les samedis, les dimanches et les jours fériés) et si c'est a.m ou p.m ou les deux.
Le bouton Réinitialiser efface les champs dans la userforme.

La userforme est déjà créée, elle s'affiche en appuyant sur le bouton : Gérer les congés.

La liste des noms est la colonne B.
La liste des types de congés est dans la feuille "Liste".
La liste des jours fériés est dans la feuille "Liste"

Remarque importante : le calendrier est dynamique, donc quand je change l'année, le calendrier change, comment faire pour ne pas avoir l'encodage de l'année précédente.
mais sans le perdre non plus.

Voici mon fichier les amis.

Merci pour votre aide.
 

Pièces jointes

  • essai.xlsm
    51.2 KB · Affichages: 26

!xmusaton

XLDnaute Nouveau
Salut Chalet53,

Top pour tes deux propositions 1 et 2, c'est toujours utile. Très bonne idée!

Ici j'ai repris ton dernier fichier et j'ai essayé de faire une BD à partir de ce qui est encodé dans le tableau de la première feuille (c'est utile pour faire des TCD par la suite)
Du coup j'ai créé une feuille "BD", avec 4 colonnes :
première : C'est le nom qui dans "ComboBox1"
Deuxième : C'est la date de début1 "DTPDateDebut1"
Troisième : C'est la date de fin1 "DTPDateFin1"
Quatrième : Si c'est 'am' ou 'pm' donc "opt"

Première question : comment inclure les "DTPDateDebut2" et "DTPDateFin2" , et les "DTPDateDebut3" et "DTPDateFin3" ? + "opt", pourque ça s'enregistre aussi dans la BD?

Deuxième question : si je fais une saisie manuelle, genre on va dans la case directement pour mettre "VA", est ce qu'il y'a moyen de rendre ça dynamique c.à.d ça s'ajoute directement dans la BD ? idem si on supprime une cellule manuellement...

PS: Pour l'année, le calendrier change quand on indique une nouvelle année dans la cellule B1 mais le contenu des cellules encodées restent le meme et ne change pas en fonction de l'année. Je pense que ça ira comme ça quand on scrolle on a 2 années de plus c'est déjà bien sans besoin d'un calendrier dynamique car ça alourdit aussi le fichier.

Merci!
 

CHALET53

XLDnaute Barbatruc
Je regarderai demain après midi
Déjà pour que le changement d'année soit pris en compte, le nom du fichier doit se terminer par le millésime (celui-ci ne doit pas être entre parenthèses)
Pour la saisie manuelle directe dans la feuille Congés, ça devient une usine à gaz pour l'intégrer dans la base BD : problème de recherche de la date début et date fin (très complexe)
La meilleure solution serait de faire les modifications dans la feuille BD (on a tous les éléments) et faire un programme qui :
remet à blanc la feuille Congés et
réalimente celle-ci à partir de la feuille BD pour tous les enregistrements
On part ainsi du prinicpe que c'est la feuille BD la référence

Est-ce que le principe du changement d'année que je te propose te convient (avec bien sûr le nom du fichier correct : le millésime constitue les 4 derniers caractères du nom.
 

!xmusaton

XLDnaute Nouveau
Re,
Ok pour le principe de changement d'année selon le nom du fichier.
Pour le changement manuel, je comprends que ça va devenir hyper compliqué, dans ce cas je préfère que la feuille d'encodage soit la la réf et non pas la BD, je vais juste désactiver la saisie manuelle (en verrouillant les cellules)
 

CHALET53

XLDnaute Barbatruc
Nouveau fichier
Rappel : la date en B1 ne doit pas être modifiée manuellement. Seul, le changement d'année (analysé en comparant le millésime du fichier et la date du jour) modifie cette date et effectue les traitements de bascule sur l'année suivante.
Avec un fichier millésimé 2000, l'ouverture du fichier le 01/01/2021 ou le 02/01/2021 entraine le traitement mentionné au paragraphe précédent
 

Pièces jointes

  • Rawaa Gestion congés Dte Synchro bis 2020.xlsm
    208.8 KB · Affichages: 4
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re,

Dans cette version, le fichier de l'année écoulée est sauvegardé dans le même répertoire avec derrière le millésime la mention ARCH. Ceci permet de le consulter sans demander le passage à l'année suivante
Un contrôle est également mis pour ne pas modifier manuellement B1
 

Pièces jointes

  • Rawaa Gestion congés Dte Synchro bis 2020.xlsm
    210.6 KB · Affichages: 10

Discussions similaires

Réponses
4
Affichages
433
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…