ListBox multiselect préremplir à partir de la cellule

Lib - 26 févr. 2017 à 01:31
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 27 févr. 2017 à 15:26
Bonjour,

Je ne sais pas si ce que j'aimerais faire est possible.
J'ai réalisé un formulaire pour remplir une base de données. Une des colonnes est remplie grâce à une ListBox Multiselect.
J'aimerais maintenant ajouter la possibilité de modifier ma base de données, mais comment faire pour que les données précédemment sélectionnées dans la ListBox le soient de nouveau lorsque je rouvre le formulaire ? J'y arrive avec une seule valeur, mais avec le multiselect je bloque ...

Merci beaucoup de votre aide, en espérant ne pas vous demander quelque chose d'impossible ;)

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 févr. 2017 à 07:33
Bonjour,
mais comment faire pour que les données précédemment sélectionnées dans la ListBox le soient de nouveau lorsque je rouvre le formulaire ? J'y arrive avec une seule valeur, mais avec le multiselect je bloque ...

Montre le code écrit pour "une seule valeur". Cela nous facilitera entre autres une meilleure compréhension.
0
Bonjour Ufoutu,

Merci beaucoup pour la réponse.

Quand je disais "pour une seule valeur", c'est à dire que je n'ai aucun mal à récupérer la sélection d'une list box lorsqu'il n'y a qu'une seule valeur dans la cellule.
À l'ouverture de l'UserForm j'ai notamment cette formule : Me.Controls("ListBox1") = Ws.Cells(Ligne, 4)

Par contre, impossible avec la multiselection, mais ça me semble évident puisque je remplis la cellule avec cette formule:
Ws.Cells(Ligne, 18) = Ws.Cells(Ligne, 18) & " " & .List(I)
Ce qui me donne par exemple comme valeur de la cellule à partir de la sélection réalisée :
"Espagne France Italie"
J'aimerais pouvoir rouvrir le formulaire, que ces 3 pays soient déjà sélectionnés, et que je puisse donc modifier le contenu de ma cellule en selectionnant ou déselectionnant.

Peut être que la formule de remplissage à partir de la listbox multiselect n'est pas idéale. ..

Je débute plutôt en VBA ... alors je m'excuse si ce n'est pas très claire ou si ce que j'ai fait n'est pas logique du tout.

Bonne journée
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
26 févr. 2017 à 10:10
0
Bonjour,
Merci pour le lien, mais je ne vois pas comment il doit me servir...
Je n'ai pas de problème à créer la ListBox et à la remplir, mon problème est que je n'arrive pas à présélectionner les valeurs contenues dans ma cellule (pour que l'utilisateur n'ait pas besoin de reselectionner les valeurs déjà contenues dans la cellule)

Mais je n'ai peut-être pas bien vu ce que je pouvais utiliser sur votre lien, si vous pouviez m'indiquer quel est le point qui me concerne ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
26 févr. 2017 à 10:58
Un exemple pour boucler sur les lignes sélectionnées dans la Listbox.
0
D'accord merci, je vois !
Ça me permets de répondre au remplissage initial des cellules.
À partir de là auriez-vous une idée pour le processus inverse ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 27/02/2017 à 15:31
Pour faire l'inverse (re-sélectionner les mêmes articles à la prochaine ouverture du userform), il te faut nécessairement stocker en dur les indexes de ces articles. Cela peut se faire dans plusieurs cellules (d'une plage dédiée à ce stockage), ou d'une seule cellule (les indexes devant alors y figurer séparés par un séparateur que tu utilises ensuite avec la fonction Split), ou dans un fichier texte dont chaque élément est un index sélectionné, etc ....
tu as là un choix à faire et ce choix relève avant tout de la conception.
Le développement étant ensuite distinct et totalement dépendant de ce choix, commence par faire ce choix.
Si, après avoir choisi ta stratégie (arrêté ton choix) tu rencontres une difficulté à une des étapes (soit d'écriture, soit de re-lecture) ce sera CETTE difficulté (et non l'ensemble) qu'il te faudra isoler et exposer et pour laquelle tu devras solliciter une aide.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Rejoignez-nous