Création d'un planning de gardes généré par formulaire

Bonjour,

Je maitrise pas assez excel pour produite le besoin ci-dessous et je fais donc appel à votre aide :slight_smile:

Description de l’existant
Exemple LISTE DE GARDE.xlsx (145,0 Ko)
En PJ l’Excel en question > liste de garde au format Excel.

Actuellement ce fichier « fait saigner les yeux » et n’est pas du tout ergonomique tant en saisie qu’en lecture, il est utilisé par plus de 200 personnes par jour qui passent leur temps à scroller verticalement et horizontalement entre les 70 lignes et une centaine de colonnes.

  • Une feuille par mois dans un fichier unique (classeur)
  • Dans chaque feuille, en ligne la liste des services
  • En colonnes, les dates + nom du médecin + n° de tel

Description du besoin saisie
Le but serait de proposer dans une feuille indépendante sorte de formulaire de saisie permettant :

  • d’indiquer une période de date à date sur laquelle la garde sera couverte
  • Le service
  • Le nom du médecin
  • Le n° de tel 1
  • le n° de tel 2
  • Valider via un bouton
  • Un message préalable confirmant la génération automatique du calendrier de garde reprenant les éléments saisis précédemment pour vérification avant validation
  • Une fois validé le calendrier de garde se construit automatiquement dans la feuile du mois correspondant (cf modèle en PJ)
    On doit pouvoir ajouter autant de ligne que necessaires (en moyenne 70 gardes par mois)

Description du besoin « Lecture » et impression
En se basant sur le calendrier généré avec une feuille par mois, le but serait de créer une feuille/formulaire de saisie simplifiée dans laquelle :

  • Un menu déroulant permettrait de sélectionner le service
  • Un champ pour sélectionner le mois
  • En dessous un formulaire serait automatiquement rempli avec les datas
  • Une colonne avec les jours du mois (1 jour par ligne)
  • Une colonne avec le nom des médecins en face de chaque jour
  • Une colonne avec les numéros correspondants
  • La finalité est de pouvoir également imprimer cette liste

A votre dispo pour préciser le besoin.
Dans l’attente de votre retour, je vous souhaite une belle suite de journée,

Merci par avance !

Bonjour

Ci-joint ma proposition en VBA
Un onglet créé « Saisie »
Une fois celui-ci rempli il suffit de cliquer sur le bouton « Traitement »
Les onglets du mois correspondant pour chaque ligne sont complétés des données de celles-ci pour la période déterminées colonne « A » et « B »
Les mois concernés doivent être existant
La période doit être sur un même mois
Réalises des saisies sur plusieurs lignes et cliques sur le bouton "Traitement
Regardes le résultat obtenu dans les onglets « MOIS »

Ceci concerne le premier point de ta demande

Testes et dis moi

Attention fichier de type « .xlsm » nécessaire au fonctionnement VBA
A conserver impérativement

Exemple LISTE DE GARDE.xlsm (164,2 Ko)

2 « J'aime »

Bonjour,

Merci FFO !
cette première étape correspond plutôt bien au besoin.
Maintenant, le risque c’est le cumul des informations saisies par les précédents utilisateurs si il ne vide pas la feuille « Saisie »
Comment pourrais-je faire pour appliquer un contrôle des doublons
Par exemple, après clic sur le bouton « traitement » si sur la période cible l’information existe déjà, ne pas l’ajouter.

Et si j’ose, pour la partie « Description du besoin Lecture et impression »
Pourrais tu m’aider ?

Merci encore pour tout !

Bonjour

Merci pour cette réponse qui semble confirmer la bonne réponse à ton besoin

« Comment pourrais-je faire pour appliquer un contrôle des doublons
Par exemple, après clic sur le bouton « traitement » si sur la période cible l’information existe déjà, ne pas l’ajouter. »

Aucun souci pour le rajouter au traitement mais il faut que tu me donnes la clé de recherche qui détermine la présence ou non de l’information

Dans l’attente de ce précieux paramètre

1 « J'aime »

Merci :slight_smile: Le contrôle doit se faire sur les informations :
Période du / Au
Nom du service
Nom du médecin

Quand je parle de clé c’est une donnée spécifique qui est unique récupéré de la source pour interroger la cible afin de vérifier la présence ou non de l’enregistrement
Tu me proposes 3 données :

Période du / Au
Nom du service
Nom du médecin

dont une qui est une période :

Période du / Au

Trés difficile d’en faire une clé

Ce que je te propose c’est d’utiliser comme clé : Nom du service

Le traitement vérifie sa présence ou non dans l’onglet Mois en colonne « A »
Si celui-ci est absent sur la première ligne libre met celui-ci en première colonne et complète sur cette ligne tous les jours en fonction de la période
Si celui-ci est présent sur la ligne de son nom réalise la même opération
Reste à déterminer la conduite à tenir si pour la même période un autre médecin est présent :

Remplacement ?
Maintient de celui existant ?

A toi de dire

Merci pour ces précisions.
Maintient de l’existant.
Le mieux resterait via un message d’avertir l’utilisateur de l’existence de la ligne, de façon à ce que l’utilisateur manuellement corrige si nécessaire.
Ainsi on ne remplace pas une éventuelle ligne qui serait juste.
Au pire on cumule.

Ce que je te propose c est de rajouter dans une colonne supplémentaire cette information
Ainsi sur chaque ligne si absent dans la colonne la mention « Création » si existant la mention « Modification »

Qu en dis tu ?

1 « J'aime »

Tu trouveras ci-joint ces évolutions :

Onglet « Saisie » ajout de la colonne « G » « Opération »
Service dans l’onglet « Mois » inexistant dans cette colonne la donnée « Création » est intégrée
Service dans l’onglet « Mois » existant dans cette colonne la donnée « Modification » est intégrée avec mise sous fond rouge si pour la même période un autre Médecin est présent

Onglet « Lecture »
Colonne « A » une liste déroulante des Services colonne « B » une liste déroulante des Mois
Colonne « D » à « H » les données récupérée en fonction du choix effectué dans les 2 premières colonnes
Les listes déroulantes colonne « A » et « B » récupèrent leurs items de l’onglet « Liste » même colonne créé à cet effet
Pour les enrichir il faut actualiser dans cet onglet la colonne correspondante

Onglet « Lecture » choisis colonne « A » le Service colonne « B » le « Mois » puis cliques sur le bouton « Récupération »
Constates le résultat obtenu colonne « D » à « H »

Fais des essais et dis moi

Exemple LISTE DE GARDE.xlsm (173,8 Ko)

2 « J'aime »

C’est top !
Il me reste à faire quelques ajustements de mise en forme / page et le tour est joué.
Je vais également mettre les main dans le code pour ajouter quelques messages de confirmation / contrôle.

Super merci FFO tu contribues à rendre les choses plus simple et plus lisible pour plus de 200 personnes au quotidien :smiley:

Merci pour ce retour positif
Si besoin je suis toujours à ta disposition
Au plaisir

La version finalisée du fichier est ICI avec quelques remaniements et adaptations :slight_smile:
LISTE DE GARDE VIERGE.xlsm (1,5 Mo)
Merci encore pour tout FFO !

Bonjour
Merci pour ce retour
J’ai regardé ton fichier qui me semble bien construit
Reste à voir à son utilisation et là seules les utilisateurs pourront statuer
Onglet « SAISIE » aucune précision sur la colonne « Statut » quant aux différentes données potentielles et leur signification
De mémoire :

« Création » (Le service absent dans le mois défini a été créé)
« Modification » (Le service présent dans le mois défini a été modifié pour la période déterminée)
« Modification » sur fond rouge (Le service présent dans le mois défini n’a pu être modifié sur tout ou parti de la période déterminée suite à la présence de données)

Informations qui seraient de mon point de vue très utiles à la compréhension afin d’adopter l’attitude adaptée

Mais c’est toi qui voit

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.