ListBox multiselect préremplir à partir de la cellule

Lib - 26 févr. 2017 à 01:31 - Dernière réponse : ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention
- 27 févr. 2017 à 15:26
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
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 ;)
Afficher la suite 

7 réponses

Répondre au sujet
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 26 févr. 2017 à 07:33
0
Utile
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.
Commenter la réponse de ucfoutu
0
Utile
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
Commenter la réponse de Lib
cs_Le Pivert 4770 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 26 févr. 2017 à 10:10
0
Utile
Bonjour,

voir ceci pour plus d'info:

http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
Commenter la réponse de cs_Le Pivert
0
Utile
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 ?
Commenter la réponse de Lib
cs_Le Pivert 4770 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 26 févr. 2017 à 10:58
0
Utile
Un exemple pour boucler sur les lignes sélectionnées dans la Listbox.
Commenter la réponse de cs_Le Pivert
0
Utile
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 ?
Commenter la réponse de Lib
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 27/02/2017 à 15:31
0
Utile
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.