Microsoft 365 Récupération donnée en fonction du numéro de semaine

guiyom

XLDnaute Junior
Bonsoir,

Je sollicite votre aide car je ne sais pas comment réaliser le résultat que je souhaite obtenir.

J’ai un tableau utilisé pour gérer les congés, les années sont générées de façon automatique, il est possible de saisir 3 personnes absente en simultané pour un même jour, les personnes saisies sont enregistrées sur 3 feuilles diffèrent BD_CAL, BD_CAL2 et BD_CAL3 et identifié par une couleur.

Je souhaite pouvoir récupérer les données saisie (feuille Calendrier) et les insérer dans la feuille planning en fonction du numéro de semaine choisi.

Je ne sais pas par quelle approche y parvenir, j’ai testé avec des SI

Exemple : =SI(ET(Calendrier!D4=BD_PERS!E2;BD_CAL!C:C=9);BD_PERS!E2;Q1)

Mais cela ne fonctionne pas.

Je vous joins un fichier d’exemple pour une meilleur compréhension

Bien cordialement
 

Pièces jointes

  • CONGES - help.xlsm
    156.9 KB · Affichages: 9

guiyom

XLDnaute Junior
En parallèle j’avais travaillé sur votre V1 que vous trouverez en PJ, j’ai plus qu’à tout rassemblé maintenant.

Le nombre d’employé est au nombre de 11 actuellement, il ne devrait jamais aller au-delà de 12 mais sait-on jamais…
 

Pièces jointes

  • CONGES.xlsm
    210 KB · Affichages: 4

vgendron

XLDnaute Barbatruc
Si vous le voulez bien, je vais plutot intégré votre travail dans la version 4
je pense que ce sera plus simple et plus rapide

j'ai regardé:
on est bien d'accord, la suppression d'un employé, c'est le supprimer de la liste des employés
de ce que je vois, vous ne faites que "vider" sa ligne et masquer sa légende..

si on le supprime.. quid des jours de congés qu'il a déjà posé ?


le formulaire "Userform_Semaine"
il ne sert QUE à choisir la semaine à afficher dans le planning?
en plus, la multiselection est possible alors que le code n'affichera QUE la première semaine selectionnée..
ca fait un gros truc pour pas grand chose non??
dans la dernière version, j'ai placé un spin bouton

le formulaire saisie des heures..
il y a plus "simple" niveau code. et surtout moyen de ne pas se tromper de qui va ou.
exemple du textbox 6
je vais te proposer un formulaire qui génère autant de case que necessaire (f°(nb employés) comme pour la légende

idem pour le formulaire "ajoute de personne"

En fait, tout ton code tourne autour du fait qu'il y a 12 personnes donc 12 shapes, 12 lignes. etc etc

si tu ajoutes ne serait ce qu'une personne.. tout ton code sera à revoir..pas très flexible
 

guiyom

XLDnaute Junior
Oui, durant la création du formulaire de suppression je me suis rendu compte d’un problème, si un CDD (2 présent actuellement) viens à nous quitter il ne faut pas que les couleurs des autres employé change ou décale. J’en suis venu à la conclusion que je devrais classer les employés par ordre alphabétique sauf pour les CDD qui doivent être classé en dernières position pour éviter tout problème.

En ne faisant que « vider » la case de l’employé supprimé je conservé la couleur des autres, mais je n’arrivais pas à insérer une nouvelle personne dans l’espace inoccupé, la nouvelle personne aller systématiquement en fin de BD.

Dans l’Ideal il faudrait que les jours posé de la personne soit libéré niveau calendrier.



Pour le formulaire Userform_Semaine oui je suis contient que c’est beaucoup pour pas grand-chose mais j’essaie de tout simplifier un maximum car une autre personne que moi sera amené à utiliser ce tableau.

A l’origine je compté trouver une solution pour autoriser la multi sélection des spins boutons mais ne trouvant pas de solution pour la génération multiple du planning j’ai décidé de voir ça plus tard.

En réalité dans mon esprit seul la page Calendrier dois être accessible à la visibilité.



Et effectivement mon codage limite toute évolution mais grâce au votre le projet gagne en flexibilité.

Bien cordialement
 

vgendron

XLDnaute Barbatruc
Hello

petite version 4 pour te faire patienter :)

Quelques évolutions majeures
1) j'ai remis tes petits boutons sur le calendrier
2) UN seul bouton pour gérer les employés ==> un seul formulaire
tu peux, supprimer un employé existant (en le selectionnant dans le combo)
tu peux en ajouter un: il suffit d'écrire un nom et prénom inexistant
selectionner une couleur (autre que le blanc) en cliquant sur le label à coté du combobox.
et saisir les heures.. tant qu'on est dans la création d'un nouvel employé...

quand tu valides le nouvel employé
un control est effecuté pour vérifier que la couleur choisie n'est pas déjà utilisé par quelqu'un d'autre

quand tu quittes le formulaire. un message te demande de faire une mise à jour en cliquant sur un bouton qui apparait sur le calendrier (l'icone recylce sous l'icone "employé")
juste un point ici (que je n'explique pas encore) quand tu cliques..il y a un message d'erreur.. tu fais OK et tu recliques..la macro s'execute alors sans pb et l'icone disparait
comme le nombre d'employé à changé, cette macro a pour objectif de mettre à jour le nombre de controls sur les formulaires Heures et Légendes

tu peux maintenant afficher la légende

3) dans la feuille "BD_Pers"
il te suffit de cliquer sur une des couleurs pour pouvoir en selectionner une autre
(en écrivant.. je me rends compte qu'ici.. il n'y a pas de control pour savoir si la couleur est déjà prise..)

4) sur la feuilles "Calendrier"
en admettant que tu aies modifié une couleur
un refresh calendrier permet de remettre les abscences avec les bonnes couleurs sans avoir besoin de changer d'année pour revenir sur l'année


5) dans les formulaires de saisie des heures
tu ne peux saisir QUE des heures
essaie de mettre du texte==> la boite est effacée automatiquement
si tu essaies de saisir une heure NON valide( ex:32:25) => meme punition, c'est effacé
 

Pièces jointes

  • CONGES - help V4.xlsm
    221.2 KB · Affichages: 5

guiyom

XLDnaute Junior
Bonsoir,

Je me rends compte que vous faites de ce projet une gestion complète flexible et professionnel.
La barre est toujours plus hauteo_O

Je ne sais pas comment vous remercier mais j'espère que vous n'y passé pas trop de temps.

Je n’aurais bien évidement jamais atteint le résultat que vous avez produit.

Bien cordialement
 

vgendron

XLDnaute Barbatruc
Et voila pour ce soir
une V5
plus de formule dans le planning, juste les résultats==> beaucoup plus rapide d'execution
il me reste juste à gérer la Mise en forme du planning lorsque le nombre d'employé évolue
les calculs se font bien, mais c'est tout.
et puis. j'avais noté un autre truc ou deux.. mais ca m'échappe.. j'y verrai plus clair plus tard


pour le temps passé, t'inquiètes.. ca m'amuse.. et puis.. de toute facon. bientot le ski !!
 

Pièces jointes

  • CONGES - help V5.xlsm
    220.8 KB · Affichages: 2

guiyom

XLDnaute Junior
Bonjour,

Je comprends votre amusement pour le codage, moi-même cela me divertie malgré que je suis loin de tout comprendre.

Je constate que vous avez créé un « module de classe », c’est la première fois que j’en vois un dans un tableau Excel, cela me rappel mes cours de codage objet en PHP il y a déjà pas mal d’années de ça. (Cela n’a peut-être rien à voir je n’ai pas encore eu le temps de regarder le fonctionnement).

En tout cas le résultat est déjà incroyable.

Bien cordialement
 

vgendron

XLDnaute Barbatruc
Bon bah.. voila la dernière version V6 (ou pas...)

à priori, le bug dont je te parlais (cliquer deux fois sur l'icone update) après un changement du nombre d'employés a disparu.. tant mieux

la création du planning est bien plus rapide (plus de formule, que des calculs faits par vba)c
la mise en forme s'adapte au nombre d'employés
j'ai mis la légende dans un rectangle à coté==> facilement déplaçable

la saisie des horaires est tout aussi rapide que tu passes par le bouton "Saisie Horaires" sur le calendrier OU BD_Pers

la coloration des vacances sur le calendrier utilise le tableau tel que sur la feuille "BD_Vacances"

la saisie des heures est controlée grace au module de classe
PS: j'ai récupéré sur le net, et je viens de l'adapter pour plusieurs types de saisie (Heure, Date, CodePostal, Téléphone) je me le garde de coté pour des usages futurs :), si ca peut te servir

sur le formulaire de saisie d'un employé, j'ai rectifié un petit pb qui n'arretait pas de demander de changer de couleur tout pendant que tu saisissais la dernière heure

PS: j'ai commenté tout le module 23 ansi que le module mTitleBarre
je ne sais pas à quoi ils servent.. au moment de l'affichage plein écran??

et donc, bah. profitez bien
si des soucis d'utilisation, ou bug, n'hesite pas
 

Pièces jointes

  • CONGES - help V6.xlsm
    233.6 KB · Affichages: 8

guiyom

XLDnaute Junior
Bonsoir,

Que dire pour vous remercier du temps que vous avez consacré à mon projet, certes cela vous à amusé mais vous avez tout de même fait à l’origine dans le simple but de m’aider.

Vous avez partagé votre savoir et votre temps sans même me connaitre, vous auriez pu vous arrêter dés la V1 qui réglé déjà de façon impeccable la problématique annoncée mais jour après jour vous avez rajouté, rendu fonctionnel et optimisé chaque fonctionnalité.

Encore une fois merci pour tout, votre savoir est précieux.

Il ne me reste plus qu’à apprendre de votre travail via les commentaires que vous avez implanté un peu partout.

Concernant le module 23 et le module mTitleBarre c’est en réalité une fonction qui une fois appelé supprime la barre de titre des UserForm, je vais les supprimer car inutile actuellement. Au début du projet j’envisagé d’afficher un USF permanant en haut ou serait inscrit les employés

Je me répète mais merci pour tout.

Prenez soit de vous et attention sur les pistes

Je vous souhaite une bonne soirée et un peu en avance de bonnes vacances

Bien cordialement
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 203
Membres
112 687
dernier inscrit
snexedwards