Alimenter une textbox à partir d'une liste box à choix multiples [Résolu/Fermé]

Signaler
Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
-
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

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 621
Bonjour,

Essaye en utilisant l'événement Change de la listbox au lieu de Click
Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
6
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
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 621
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

Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
6
Merci pijaku,

C'est parfait! :-)

Bonne fin de journée!



Kayna.
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 621
de rien.
Bonne fin de journée à toi aussi.
A+