Combobox : liste variable - mauvais affichage
Bonjour à tous,
J'ai essayé de trouver sur le forum un sujet lié au mien mais je ne trouve malheureusement jamais tout à fait ce que je recherche.
Mon projet est le suivant :
- Réaliser un formulaire permettant de gérer des membres d'une association.
- Les deux fonctionnalités principales sont donc d'inscrire des personnes et aussi de les supprimer lorsqu'elles quittent l'association.
Principe suivi :
J'ai décidé de faire cela de la manière suivante. J'ai créé un formulaire principal à deux boutons : INSCRIRE et DESINSCRIRE. Le click sur chacun de ces boutons permet de démarrer un formulaire spécifique (j'ai donc en tout 3 formulaire, celui d'accueil pour les deux boutons, puis un formulaire inscription et un formulaire suppression).
Pour les inscriptions, tout va bien. Via quelques champs à compléter (nom, prénom, email, etc) et un bouton "confirmer inscription", je copie le contenu de tous les champs complétés dans une feuille spécifique par membre. J'ai donc une feuille par membre mais aussi une feuille générale qui reprend, dans une colonne l'ensemble des membres. Cette feuille générale consiste donc uniquement en une colonne contenant, par ordre alphabétique, tous les membres de l'association (et accessoirement, je peux, dans ce tableau, cliquer sur chaque nom pour être dirigé vers sa "fiche" (l'onglet spécifique à ce membre).
Donc pour résumer : introduire un membre revient à ajouter une ligne dans ma feuille générale (où je ne recopie que nom et prénom), puis à faire un tri alphabétique, à créer une feuille spécifique pour ce membre dans laquelle je stocke les infos du formulaire. Il y a sans doute d'autres idées de structure, mais mon problème n'est pas lié à la structure. Je préfère que les choses soient comme cela de ce point de vue-là.
Pour les suppressions, l'utilisateur, après avoir cliqué sur le bouton "supprimer" voit donc le formulaire "suppression" s'ouvrir devant lui. Ce formulaire consiste uniquement en une combobox (liste déroulante) qui reprend la liste de tous les membres qui se trouvent dans la fameuse colonne B de ma feuille générale (le premier membre apparaît en B5, puis B6 et ainsi de suite). J'ai donc dû passer par une liste variable pour cette Combobox. Ce que j'ai fait, c'est la chose suivante : dans la propriété RowSource, j'ai mis "Membres!ListeMembres" où Membres est le nom de ma feuille générale et ListeMembres est une liste que j'ai créée dans Excel dans le "Name Manager" et que j'ai créé en inscrivant ce qui suit dans le champ "Refers To" : =OFFSET(Membres!$B$4,1,0,COUNTA(Membres!$B:$B)-1,1)
Problème :
Alors, ça fonctionne pas trop mal au début quand je teste. Je peux ajouter des membres autant que je veux. Quand je consulte ma liste dans la Combobox du formulaire "suppression", tous les noms y sont. C'est déjà rassurant. Le problème commence pour moi, lorsque je commence à supprimer des membres.
Supprimer un membre se résume à : sélectionner un membre dans la Combobox puis de cliquer sur Supprimer. Ce click génère, dans la feuille générale, une suppression (dans la colonne B) de la ligne correspondant au membre à supprimer (après recherche dans la liste alphabétique) et la suppression de la feuille spécifique à ce membre.
Mon souci est le suivant :
Si je créé par exemple 4 membres (j'ai donc les cases B5, B6, B7 et B8 qui sont complétées), il y a déjà quelque chose de bizarre au niveau de ma liste déroulante de la combobox : elle m'affiche les 4 membres et puis une ligne blanche en plus en dessous de tout. Donc en tout, 5 lignes. Première question : pourquoi cette 5ème ligne inutile se voit-elle ?
Si je supprime un des membres via cette liste déroulante, tout se passe normalement au niveau des suppressions, mais si je retourne voir la liste déroulante pour supprimer quelqu'un d'autre par exemple, elle ne m'affiche bien plus que 3 noms mais il y a en plus, deux lignes blanches dans la liste tout en bas ... Donc même si je supprime tout le monde, le menu déroulant va m'afficher 5 lignes blanches ...
C'est un problème esthétique, mais je ne le comprends pas. Surtout si je créée 50 membres un jour ... et qu'ensuite, j'en supprime 20, je vais, en dessous de mes 20 membres trouver 31 lignes blanches inutiles ... Comment pourrais-je régler cela ?
C'est comme si la mise à jour de la liste ne se faisait pas complètement ... Il tient compte des membres disparus, mais garde trop de lignes affichées. J'aimerais ne pas avoir ces lignes vierges ...
Je suppose que le problème provient de l'instruction écrite lors de la création de la liste dans Excel avec Name Manager :
=OFFSET(Membres!$B$4,1,0,COUNTA(Membres!$B:$B)-1,1)
Merci d'avance pour vos idées !
A bientôt !
David
Bonjour dlopezma
Tu trouveras peut être une solution ici : https://cellulexcel.blogspot.fr/p/qui-na-pas-un-jour-utilise-loption.html
Par contre avec un fichier, la compréhension de ta requête sera plus facile...
A bientôt