Alimenter une textbox à partir d'une liste box à choix multiples

Résolu/Fermé
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 - 23 nov. 2012 à 12:18
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 23 nov. 2012 à 16:36
Bonjour à tous,

La débutante que je suis sollicte votre aide si précieuse. Je vous explique mon problème:

Sur un userform, j'ai une listbox à choix multiples et une textbox.
Je souhaiterais que les différents éléments sélectionnés dans ma listbox se reportent automatiquement dans la textbox.
J'ai parcouru de nombreux forums à ce sujet à partir desquels j'ai puisé quelques idées.
Malheureusement mon code, qui est pourtant assez simple, ne fonctionne pas, et je ne comprends pas pourquoi. La macro s'execute sans problème (pas de message d'erreur ou de "debugage" nécessaire). En revanche, quand le userform s'affiche et que j'effectue mes seletions, il ne passe rien: la textbox reste vide.


Voici les lignes de codes question:

Private Sub ListBox1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox.Selected(i) Then
TextBox1.Value = ListBox(i)
Next i
End Sub


Une âme charitable pourrait-elle m'aider à comprendre pourquoi il ne se passe rien?

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 nov. 2012 à 13:10
Bonjour,

Essaye en utilisant l'événement Change de la listbox au lieu de Click
0
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
23 nov. 2012 à 15:37
Bonjour pijaku,

merci! ca fonctionne déjà un peu mieux avec l'événement change. En revanche, j'ai un autre problème maintenant. le textbox n'affiche qu'une seule valeur. Dès que je sélectionne un élement supplémentaire dans ma listbox1, le valeur renseignée dans la textbox ext systématiquement remplacée par la nouvelle sélection. or je voudrais que toutes les valeurs sélectionnées dans la listbox se reporte dans la textbox.
Aurais-tu une idée pour résoudre ce problème? ( Ou quelqu'un d'autre bien sûr)

J'ai tenté le code suivant, mais manifestment la syntaxe "TextBox1.Value(J) =
ListBox1.List(i)" n'est pas bonne:

Private Sub ListBox1_change()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
For J = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
TextBox1.Value(J) = ListBox1.List(i)
End If
Next J
Next i
End Sub
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 nov. 2012 à 15:46
Ah oui en effet, ça ne fonctionne pas comme cela.

Perso, je passerai par une variable de type string (chaine de caractères) intermédiaire.
J'y stockerai toutes les valeurs sélectionnées de la Listbox et après la boucle, j'inscris dans le textbox le contenu de ma variable.

Ca donne :
Private Sub ListBox1_Change()
Dim i As Integer, Texto As String

Texto = ""
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) Then
        Texto = Texto & ListBox1.List(i)
    End If
Next i
TextBox1.Value = Texto
End Sub

0
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
23 nov. 2012 à 16:26
Merci pijaku,

C'est parfait! :-)

Bonne fin de journée!



Kayna.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
23 nov. 2012 à 16:36
de rien.
Bonne fin de journée à toi aussi.
A+
0