1 pièce(s) jointe(s)
Gestion base de données et listbox
Bonjour à toutes et à tous,
Petit souci sur excel 2007 en vba donc.
L'idée du fichier est de renseigner informatiquement le planning prévisionnel d'un établissement de santé pour le week- end:
-résidents sortants,
-professionnel travaillant,
-sorties et animations prévues.
La feuille importante qui sera diffusée aux équipes est la feuille "ORGANISATION"
J'ai choisi de gérer ces "3 blocs" de données de façon indépendante (les utilisateurs sont susceptibles de modifier le 1er, le 2eme, ou le 3eme)
Le fonctionnement est identique pour chacun des 3 blocs; donc prenons par exemple le bloc "RESIDENTS SORTANTS): si l'utilisateur souhaite renseigner le ou les résidents sortants, il clique sur le bouton correspondant du sheets("MENU") (bouton "RENSEIGNER LES RESIDENTS SORTANTS"). Un userform s'ouvre alors (UserForm_ResidentSortant) avec des champs à remplir; une fois remplis, il clique sur le bouton vert "valider": les données sont alors transférées dans une listbox, puis clique sur le bouton "Mise à jour résidents sortant"; les données de la listbox sont alors copiées dans la feuille "RESIDENTS ABSENTS" puis par formule, dans la feuille "ORGANISATION".
Jusque là j'ai bricolé, mais cela fonctionne bien.
Par contre les utilisateurs sont susceptibles de modifier (en fait supprimer) certaines de ces données.Et c'est là que cela se complique.
Je voudrai, en cliquant sur le bouton "SUPPRIMER LES RESIDENTS SORTANT" du sheets ("MENU"):
- recharger le userform "UserForm_ResidentSortant" et bien entendu recharger la listbox avec son contenu,
- sélectionner une ligne de cette listbox, et cliquer sur le bouton "SUPPRIMER" pour vider la ligne et de la listbox et de la feuille "RESIDENTS SORTANTS" (et donc par formule de la feuille "ORGANISATION")...
Là, pour récupérer le contenu de la listbox, je n'ai pas trouvé d'autre moyen que de recréer un userform spécifique (UserForm_SupprResidentSortant) et je n'arrive pas à gérer la suppression de la ligne sélectionnée de la listbox et par conséquent de la ligne correspondante dans la feuille ("RESIDENTS ABSENTS").
Quelqu'un pourrait- il m'aider?
Merci beaucoup
1 pièce(s) jointe(s)
Gestion base de données et lsitbox
Bonjour et merci pour ta réponse.
J'aimerai en effet récupérer le numéro de ligne dans ma listbox avec listindex, mais je ne comprends pas bien comment cela fonctionne.
Dans le userform_ResidentSortant, par exemple, j'ai rajouter une colonne dans ma listbox pour récupérer le numéro de ligne; dans le code du bouton "valider" du userform, j'ai rajouté:
List_Residents.Column(6, List_Residents.ListCount - 1) = List_Residents.ListIndex + 1
Mais je récupère toujours la valeur 1???? même si j'ai 2 lignes.... je comprends pas bien comment ça marche..
D'autre par, mon problème essentiel, c'est comment je veux utiliser mon userform:
- Si je clique sur le bouton "RENSEIGNER LES RESIDENTS SORTANTS", l'useform s'ouvre, je remplis les différents combobox, je clique sur "valider"--> la listbox récupère les infos, je clique alors sur "Mise à jour résidents sortants" et les données de la listbox sont transférées dans la feuille "ORGANISATION"; ça c'est OK, cela marche.
- par contre, en cliquant sur le bouton "SUPPRIMER LES RESIDENTS SORTANTS", je voudrai rouvrir le même userform avec la listbox non pas vide mais alimentée des données renseignées dans la feuille "ORGANISATION" et gérer ensuite la suppression de lignes de la listbox et donc de la feuille "ORGANISATON".
Je demande donc 2 rôles différents au userform. Il faudrait peut- être gérer cela avec des modules:
- bouton "RENSEIGNER RESIDENTS SORTANTS"--> appel du module 1 qui afficherait le userform me permettant de remplir la listbox et donc la feuille "ORGANISATION"
- bouton "SUPPRIMER RESIDENTS SORTANTS"--> appel du module 2 qui réafficherait le userform mais me permettant cette fois de supprimer des lignes de la listbox et donc de la feuille "ORGANISATION"
J'ai eu cette idée, mais je ne sais pas si les modules peuvent gérer cela et comment....
Je continue de chercher....
D'avance merci