Utilisation d'un UserForm pour gérer les motifs d'absence dans CRT

Bonjour Forum

Je sollicite votre expertise pour résoudre un problème qui me préoccupe. Mon souci est de remplir automatiquement la feuille de destination préalablement définie, nommée 'CRT', en utilisant un UserForm.

Description
:

La feuille de destination
: Les plages de cellules concernées par le remplissage dans la feuille 'CRT' via le UserForm sont les suivantes :

la colonne I, de la cellule I17 à M47, destinée à enregistrer les motifs,

ainsi que les cellules T6 (représentant la date de début du mois, le 1er de chaque mois) et Y6 (pour la date de fin du mois).

Le UserForm
: Le UserForm est constitué des éléments suivants :

une Combobox pour l'année,

une Combobox pour le mois,

une Combobox pour spécifier les motifs d'absence,

deux TextBox pour entrer les dates de début et de fin,

ainsi que trois boutons (Valider, Annuler et Réinitialiser).

Fonctionnement :

À partir de l'UserForm (USF), l'année courante s'affiche automatiquement dans le Combobox d'année. Ensuite, je sélectionne un mois dans le Combobox mois (liste déroulante). Ce choix actualise la colonne des jours dans la feuille CRT (colonne A17:A47) en affichant ou masquant les jours (28, 30, 31). En même temps, il actualise les deux cellules représentant la date de début du mois sélectionné (cellule fusionnée T6) et la date de fin du mois sélectionné (cellule fusionnée Y6). De plus, l'année et le mois sélectionnés sont affichés dans les cellules AL5 et AL6 de la feuille 'CRT'.

Exemple concret :

Supposons que j'aie pris un congé de 4 jours, du 01/MOIS/2023 au 04/MOIS/2023. Je me rends au Combobox des Motifs, où je sélectionne 'Congé'. Ensuite, je choisis la date de départ (dans le TextBox date de départ) et la date de fin (dans le TextBox date de fin). Je valide en appuyant sur le bouton 'Valider'. À ce stade, deux cas se présentent : soit je rajoute d'autres motifs, soit je valide définitivement.

1er cas - Valider un seul motif
: Dans notre exemple, il s'agit du congé. Les motifs de congé sont alors transférés dans la colonne I, conformément aux dates correspondantes (colonne A).

2e cas - Valider plusieurs motifs
: Lorsque je clique sur le bouton 'Valider', un message s'affiche : "Souhaitez-vous ajouter un autre motif ?". Si je choisis 'Oui', les données du congé sont sauvegardées, et je retourne à l'UserForm. À ce stade, je peux ajouter d'autres motifs, par exemple :

- J'ai pris une CP le 08/MOIS/2023. Je valide et je reviens à l'UserForm.
- J'ai suivi une formation du 18/MOIS/2023 au 22/MOIS/2023. Je valide et je reviens à l'UserForm.
- J'étais en formation du 27/MOIS/2023 au 30/MOIS/2023. Je valide définitivement.

En fin de compte, j'obtiendrai la feuille CRT remplie et prête à être sauvegardée en tant que fichier PDF et à être imprimée.
Pour chaque NOUVELLE utilisation, j'ai la possibilité de cliquer sur le bouton 'Réinitialiser' pour effacer uniquement les motifs.

Merci

Bonjour Charlie2015 et le forum
Voici une proposition, surement à améliorer. Les Textbox dates début et fin sont remplacées par des ComboBox.
Attention aux formules. La colonne A correspond aux jours du mois et la colonne B contient les formules pour calculer les jours de la semaine afin de renseigner la colonne C avec soit RH ou 08 H.

Cdt

Papy Henri

Bonjour AFEH, le forum

Merci pour la réponse, mais cela n'a pas produit les résultats voulu, comme je l'ai illustré dans mon exemple, surtout lorsque plusieurs motifs sont présents.

A+

Bonjour Chaelie

Fonctionnement :
À partir de l'UserForm(USF), l'année courante s'affiche automatiquement dans le Combobox d'année. Ensuite, je sélectionne un mois dans le Combobox mois (liste
déroulante). Ce choix actualise la colonne des jours dans la feuille CRT (colonne A17:A47) en affichant ou masquant les jours (28, 30, 31). En même temps, il actualise les deux cellules représentant la date de début du mois sélectionné (cellule fusionnée T6) et la date de fin du moissélectionné (cellule fusionnée Y6). De plus, l'année et le mois sélectionnés sont affichés dans les cellules AL5 et AL6 de la feuille 'CRT'.

La macro liée au formulaire fait exactement ce qui est demandé ci-dessus.

1er cas - Valider un seul motif : Dans notre exemple, il s'agit du congé. Les motifs de congé sont alors transférés dans la colonne I, conformément aux dates correspondantes (colonne A).
2 ème cas - Valider plusieurs motifs : Lorsque je clique sur le bouton 'Valider', un message s'affiche : "Souhaitez-vous ajouter un autre motif ?". Si je choisis 'Oui', les données du congé sont sauvegardées, et je retourne à l'UserForm. À ce stade, je peux ajouter d'autres motifs, par exemple :

La macro fait exactement ce qui est demandé.
La seule chose que j'ai changée c'est que j'ai enlevé la fusion des colonnes A et B pour mettre en colonne A le jour du mois et en colonne B le jour de la semaine(non visible) pour déterminer si c'est un jour ouvré ou le RH.
Je ne vois pas où est le problème!

Tester cette nouvelle version qui fonctionne correctement chez moi.
Papy Henri

Bonsoir Papy Henri, le forum

Je vous remercie pour votre réponse, c'est exactement ce que je recherchais.

A+

Bonjour et merci pour ce retour.
Bonne continuation.
Papy Henri

Rechercher des sujets similaires à "utilisation userform gerer motifs absence crt"