XL 2010 Gestion de lits

Seveso

XLDnaute Nouveau
Bonjour à Tous,

Je me suis lancé sur un petit projet ..... pas si petit que ça finalement....
Et du coup de vais vous solliciter pour un peu d'aide ...
Je début pas forcement sur Excel (mais VBA si) mais j'ai pas non plus tous les talents ....

Bref entrons dans le vif du sujet: la gestion de lits

La finalité du projet se base sur un onglet où se trouve une carte du bâtiment (découpée par services, donc un onglet par service)
et donc un visuel sur les chambres avec un code couleur :
Rouge : occupée
Orange : fermée
Jaune : non disponible
vert : disponible
et l'affichage du nom et prénom du patient et son sexe sur la chambre.

En cliquant sur la chambre on obtient une ouverture de fenêtre avec le contenu de la chambre:
- Numéro de chambre
- Statut de la chambre
- Nom du patient
- Prénom du patient
- Date de naissance du patient
- age du patient
- sexe du patient
- date d'entrée du patient
- date de sortie du patient

Cela permets ainsi de visualiser ce que la chambre "contient" et qu'elle corresponde bien à la couleur annoncée,
mais également de faire les modification suivante :
changement du numéro de chambre (lors d'un transfert), changement du statut de la chambre (notamment pour un transéat ou pré-admission)
et la saisie de la date de sortie (notamment lors d’expulsion, de sortie définitive ...)

Un deuxième onglet est la pour la liste de tous les patients (nouveau, comme ancien) histoire d'avoir un petit historique, qui s'alimente en fonction des modifications fait sur la fenêtre précédente. (avec système de filtration)

Un troisième onglet serait disponible pour mettre en place trois formulaires:
- Saisie nouveau patient
- Saisie date de sortie
- Saisie changement de chambre

Un quatrième onglet serait lui dédié aux indicateurs:
- Taux d’occupation des lits
- ratio homme/femme
- ratio de tranche d'age
- durée moyenne de séjour
(avec filtration des affichages souhaité pour impression si nécessaire)

Un cinquième onglet serait si nécessaire, utilisé comme base de données.

Pour ce qui est de Excel, je travail avec la version 2010, j'ai le plan de l'étage concerné en pdf.

Tout aide est la bienvenu.
Je n'ai pour l'instant pas de fichier exemple a vous mettre en pièce jointe puisque je le début aujourd'hui.
Des que j'ai réussi a faire quelque-chose, je le mettrai en ligne.
Je n'ai pas non plus l'option MAP de excel .... :/

vous remerciant par avance pour le temps que vous passerez a m'aider,
cordialement,
 

JM27

XLDnaute Barbatruc
Bonjour a tous
Vu la qualité de la demande et du cahier des charges je ne peux qu'essayer de te proposer quelque chose.
Je ne sais pas si cela peux convenir , mais essayons tout de même.
Je propose une image dans l'userform de l'ensemble des chambres et d'avoir un visuel direct
de l'occupation des chambres en fonction des 4 couleurs. ( par des rectangle de couleurs se superposant sur l'image et sur les chambres concernées.
Ci joint un exemple de ce que l'on peut faire sur cette idée
Voir l'userform gestion des palettiers en sélectionnant Le palettier 1 et entrée une référence
et sélectionner ref 2,0001 ou 6,0004
De plus tu as sans activer l'userform une possibilité de visualiser les chambres sur une feuille.
et voir les couleurs dans l'image et passer la souris sur les rectangles.
Effectivement cela demande interprétation , les alvéoles seraient des chambres
Avant de me lancer , je demande vos avis , le développement étant lourd , mais très intéressant
 

Pièces jointes

  • gestion de 4 Palettiers new.xlsm
    850.2 KB · Affichages: 72

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Seveso, @JM27 :),

Un exemple avec un module de classe:
  • voir le code dans le module class_UnLit (on y défini de quel objet doivent hériter les ComandButton qu'on va considérer comme étant des lits et ce qu'on fait quand on clique desssus
  • voir le code module1 (on y met la procédure qui relie les CommandButton de la feuille du plan à class_Unit. Son nom est Relier_CommandButton_Class
  • Voir le code dans le module de ThisWorkbook où principalement on lance la procédure d'association à l'ouverture du classeur
  • Voir le code dans le module de la feuille "plan secteur a" où on lance la procédure d'association à chaque activation de la feuille du plan
  • Voir le code de Userform2 où à son initialisation, on place dans le titre du userform le numéro de lit sur lequel on a cliqué
Nota: le code associé aux commandbutton est unique. Il n'y a pas autant de code que de commandbutton. Le code n'est défini qu'une seule fois dans le le module de classe (quelque soit le nombre de lit). Si vous rajoutez un bouton (donc un lit) sur la feuille, après avoir relancé l'association (en sélectionnant une autre feuille puis en réactivant la feuille du plan), le programme prend automatique en compte ce nouveau bouton sans modifier le code en quoique ce soit. Si vous utilisez le code pour un autre service dans un autre classeur, il suffit de redéfinir quelle feuille contient le plan (via la constante FeuillePlan) sans rien changer par ailleurs.

Qu'en pensez-vous ?


Question: il y aurait différents secteurs : Seront-ils dans le même classeur ou bien y aura-t-il un classeur par secteur ?
 
Dernière édition:

Seveso

XLDnaute Nouveau
Bonjour @JM27 et @mapomme.

Bon ça se voit que je débute en prog vba .... j'ai compris certain truc mais pas tout.
Donc si j'ai bien compris, je vais essayer de reformuler ce que tu as fais Mapomme:

Le module de classe sert a récupérer, quelque soit le bouton enfoncer sur le plan, le numéro de ce bouton. Donc le premier menu (UserForm2) s'ouvre avec en titre le numéro de la chambre.
Parfait.
Ensuite le module te permet de parcourir tout les boutons de la page plan secteur a et vérifie et stock le numéro de la chambre. Il se lance lors qu'on valide notre choix sur le UserForm2 et atteint le bon onglet sur le UserForm1 en pré-remplissant les informations qui sont présent dans le tableau liste patient si nécessaire.

Pour ce qui est de ta question, elle reste encore en suspend puisque j'ai deux options:
Soit je fais un fichier par secteur et dans ce cas chaque cadre de service est libre de saisir comme bon lui semble sans contrainte.
Toutefois plusieurs contraintes majeures semblent être présentent comme:
- pas de transfert patient entre secteur (ou plus compliquer a mettre en place)
- pas de visuel lors des astreintes
- devoir envoyer son plan aux autres cadres lorsqu'il y a une modification

Et si on fais un seul fichier, la seul contrainte que je vois et que si j'utilise le fichier et que j'oubli de la fermer, personne pourra faire de modification.

Donc je pense partir sur l'ajout de plusieurs onglets avec chaque service dans le même fichier.

Pour les secteurs cela va de A à H, répartie comme suit:
Secteur A : 101 à 121 avec de la 121 à 114 en chambre double
Secteur B : 122 à 142 avec 122,123,124, 137 et 136 en chambre double
Secteur C : 143 à 162 avec 143,144,145,157 et 158 en chambre double
Secteur D : 163 à 182 avec 163,164,165,177 et 178 en chambre double
Secteur E : 164 à 203 avec 183,184,185,197 et 198 en chambre double
Secteur F : 204 à 225 avec de la 218 à 225 en chambre double
Secteur G : futur bâtiment
Secteur H : futur bâtiment

Voila le plan du secteur B par exemple (cf pièce jointe)

@JM27, merci pour ta suggestion. Elle me servira ultérieurement quand je commencerai a m'attaquer a la deuxième phase du projet : la gestion des patients sur les plateaux techniques.
 
Dernière modification par un modérateur:

Seveso

XLDnaute Nouveau
Bonjour @JM27

Se sont de bonnes idées toutefois je souhaiterai rester sur un affichage plan secteur dans excel.
Garde à l'esprit que les gens qui vont saisir les informations sont pire que moi en informatique .... c'est peut dire.
Donc le but et qu'il ait un plan (page excel avec couleur bouton) et s'ils ont besoin ils cliquent sur le bouton correspondant au lit et ils font l'action qu'ils souhaitent.
Et vu que les flux sont "mouvant" il faut prévoir un onglet "donnees" histoire de pouvoir alimenter la base selon le départ ou l'arrive d'un nouveau médecin par exemple.

cordialement,
 

JM27

XLDnaute Barbatruc
bonjour
c'est comme tu le souhaites.
je ne détiens pas la vérité
Donc je laisse tomber,
J'ai d'autre projets sur le feu :D
nota: attention , je vois des noms qui a mon avis ne sont pas anonymes dans la feuille données
 
Dernière édition:

Seveso

XLDnaute Nouveau
Bonjour à Tous,

je voulais vous remercier de votre aide et avoir votre avis sur trois points:

Point 1 :
Comment passer du Menu Userform2 et aller en fonction de la sélection de l'utilisateur, directement sur le bon frame du userform1 ?

Point 2:
je vous soumet le fichier en l'état, car pas encore fini.
Le secteur A est fonctionnel (mais non enregistrable pour l'instant)
on choisi un bouton de la chambre souhaitée et ensuite sur le menu, nouveau patient, puis on rempli le formulaire associé.

quelques automatismes sont mis:
Dans nom patient :
Saisissez : Maintenance, bloque,vide ou un nom quelconque et voyez le statut et la couleur de la chambre changée.
Mettez une date de naissance et le calcul de l'age se fait tout seul
En cliquant sur le bouton de la chambre initialement, son numéro est reporter dans le formulaire, le le secteur associé aussi.

Et sur le secteur F :
Un bouton est mis sur la page excel, ce dernier permet de balayer le tableau de l'onglet "liste patient"
pour mettre a jour au dessus, le nom du patient présent + le nom du médecin qui en a la responsabilité. (il suffit si vous souhaitez tester d'enlever la date de sortie sur une des lignes)

Point 3 :
Je n'ai pas encore trouver comment change la couleur du bouton de la chambre dans la couleur correspondant a son statut après enregistrement du formulaire.

Pour rappel, tous les données sont fictives.

cordialement,
 
Dernière modification par un modérateur:

ChTi160

XLDnaute Barbatruc
Bonsoir
pour ce qui est des Controls "CommandButton" Chambre !
je me sis a musé a les renommer pas tous mais Bon
Cmdb_Ps_a_A121G à Cmdb_Ps_x_?###? puis j'ai utilisé la procédure
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' Relier_CommandButton_Class
Dim X As Object, i As Long
Erase MesLits
 With Sh
   If .Name Like "plan secteur*" Then
   For Each X In .OLEObjects     ' on parcours les objets OLE de la feuille   
      If X.progID = "Forms.CommandButton.1" And X.Name Like "*_*_?_?*" Then        ' si c'est un                                                                     Commandbutton et que le Nom....
                                                        ' dans le tableau MesLits de type Class_Unlit
         ReDim Preserve MesLits(i)     ' on augmente la taille du tableau de un élément
         Set MesLits(i).UnLit = X.Object     ' on y affecte le CommandButton
         i = i + 1      ' on incrémente pour le bouton suivant
      End If
   Next X
 End If
End With
End Sub
Pour initialiser la Classe des Boutons de la Feuille Sh
ça pourrait aider lol
tout ce ci est perfectible
il faut que je lise le cahier des charges Lol
Bonne fin de Soirée
Jean marie
 

Pièces jointes

  • Chambre_1.gif
    Chambre_1.gif
    483.9 KB · Affichages: 41

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Bonjour à tous,
Je vais être obligé de supprimer toutes les pièces jointes.
Même si ce sont des noms de médecin, on ne doit pas mettre de données nominatives de qui que ce soit dans des fichiers publiés sur XLD.
C'est parti pour le ménage...
Bonne journée
 

ChTi160

XLDnaute Barbatruc
Bonjour David
Bonjour seveso
David Ok pour les Noms !
Mais , je ne pense pas que la Schématisation d'espaces (dont on ne connait pas le Lieu ( soveso peut être! lol)
Puisse poser problème . pas évident qu'il s'agisse d'un "batiment public "
il n'y a aucune mention de la Sorte Lol.
Que peux donc fournir seveso , qui soit une représentation non interdite de ce lieu que l'on ne connaîtra surement jamais et que donc ceux qui connaissent , n'en apprendront rien Lol
il va peut être falloir si soveso veut continuer sur ce Fil partager par Email( Fichiers anonymisés) si pas possible de mettre de fichier sur le site !
Merci de ce que tu fais
Amicalement
Jean marie
Prenez soin de vous!
 
Dernière édition:

Seveso

XLDnaute Nouveau
Bonjour à tous
Je continuai ce weekend ce que j'ai commencé.
Oui effectivement la donnée "nom des médecin" n’était pas anonyme. autant pour moi.

Je vais donc refaire le fichier en tâchant d'anonymiser le plus de chose possible.
et vous referai une proposition. (ce n'est pas un batiment public)

Merci a David d'avoir fait son rôle de médiateur.
En espérant qu'il n'efface pas mon prochain fichier ..... suspense....

bon weekend a tous, bon confinement pour ceux qui le sont, et bon courage a ceux qui bosse ....
 

Discussions similaires

Réponses
1
Affichages
188

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16