Bonjour,
J'ai construit un fichier Excel qui contient un certain nombre d'onglets, tous basés sur un onglet "modèle" et dans lesquels l'utilisateur remplit de nombreux champs.
Parmi les champs à remplir, il y a 2 listbox (de type contrôle activeX) avec une liste de valeurs qui peuvent être sélectionnées (choix multiple autorisé, présentation sous forme de liste avec case à cocher).
Les valeurs dans ces listes sont initialisées avec la fonction .AddItem dans l'onglet "modèle". Ensuite les autres onglets sont créés par recopie du modèle, ils ont donc les mêmes valeurs.
J'ai également une procédure VBA qui me permet d'ajouter une nouvelle valeur dans les listes sur chaque onglet (toujours avec la fonction AddItem).
Mon problème : lorsque je ferme le fichier et que je le ré-ouvre, toutes les listbox se vident.
J'aimerais donc trouver une propriété ou fonction des listbox qui pourrait être déclenchée à l'ouverture du classeur pour empêcher cette "remise à zéro". Sachant qu'en plus, on voit vraiment que les données sont là et au bout d'une demi-seconde, elles disparaissent...
Je n'ai trouvé nulle part une telle fonction/méthode à appeler dans Workbook_Open(). Je ne suis pas sûre qu'elle existe mais ce serait l'idéal pour moi...donc si quelqu'un a des connaissances là-dessus, qu'il n'hésite pas !
Cela me semblerait être le plus propre.
La méthode "recharger toutes les listbox" à l'ouverture ne convient pas car cela ne permet pas de conserver les valeurs qui avaient été cochées dans chaque onglet par l'utilisateur. Et je voudrais éviter de devoir créer un stockage "manuel" de tout cela....ce qui serait mon ultime recours si je n'ai pas de solution.
Merci d'avance pour vos idées !
PS : je précise que mes listbox ne sont pas remplies avec la propriété ListFillRange car cela interdit l'utilisation de .AddItem pour ajouter des valeurs. De plus si j'utilisais ListFillRange j'aurais quand même le problème à l'ouverture, juste un peu différent : les listes sont toujours remplies mais les valeurs cochées disparaissent quand même.
Partager