Afficher les éléments sélectionnés d'une listbox vers une combo [Résolu]

Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
- - Dernière réponse : cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
- 17 avril 2014 à 13:54
--Bonjour à tous,

Je reviens sur ce forum après quelques mois d'absence, les joies du déplacement à l'étranger, pour une question :

Sur un USF, j'ai une ListBox qui m'affiche une liste de noms sélectionnable avec case à cocher et choix multiple ainsi qu'une ComboBox qui devrait m'afficher les éléménts sélectionnés dans la ListBox.

Je souhaiterais savoir comment coder cela ?

Merci pour votre aide et à bientôt ;)

Christian
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
25780
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2019
312
1
Merci
Bonjour,

Private Sub ListBox1_Change()
 LC = UserForm1.ListBox1.ListCount
 Debug.Print LC

 UserForm1.ComboBox1.Clear

 For i = 0 To LC - 1
  valSelected = UserForm1.ListBox1.List(i)
   If ListBox1.Selected(i) Then
    UserForm1.ComboBox1.AddItem valSelected
   End If
 Next

End Sub

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
1
Merci
Bonjour Jordan45,

Comment vas-tu ?

Merci pour le code, mais je viens de le mettre en place en remplaçant biensur le nom de mes contrôles et voici le code :

Private Sub ListBox4_Change()
LC = Copi_rap.ListBox4.ListCount
Debug.Print LC

Copi_rap.ComboBox4.Clear

For i = 0 To LC - 1
valSelected = Copi_rap.ListBox4.List(i)
If ListBox4.Selected(i) Then
Copi_rap.ComboBox4.AddItem valSelected
End If
Next

End Sub


Mais ça ne fonctionne pas, lorsque je sélectionne les noms dans la ListBox, il ne se passe rien dans le ComboBox...

Mais c'est déjà une piste que je vais étudier... y a pas de raison ;)

Merci à toi, si jamais je ne trouve pas la solution je reviendrais...

Bonne journée

Christian
--

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

jordane45
Messages postés
25780
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2019
312 -
Mais ça ne fonctionne pas, lorsque je sélectionne les noms dans la ListBox, il ne se passe rien dans le ComboBox...
Tu as cliqué dans ta ComboBox pour voir si des valeurs ne s'y étaient pas mises ?

Au pire... tu peux :
1 - Essayer le code en mode pas à pas pour essayer de voir ce qu'il se passe
2 - Ajouter des debug.print pour voir si les valeurs de tes variables sont bonnes.

3 - En relisant la description de ton souci... tu utilises une LISTBOX avec cases à cocher ??
Tu ne veux pas plutôt dire une LISTVIEW ??
Si c'est la cas.. le code est celui-ci :

Private Sub ListView1_Click()
Dim i As Integer
Dim valSelected  as String
'----------------------------------------------
'RAZ de la combo avant mise à jour
'----------------------------------------------
    Copi_rap.ComboBox1.Clear
    
'----------------------------------------------
'Récupération des éléments  sélectionnés
'----------------------------------------------
LI = ListView1.ListItems.Count
Debug.Print "Nb Elmts in ListeViw : " & LI
For i = 1 To LI
    If ListView1.ListItems(i).Checked = True Then
        valSelected = ListView1.ListItems(i).Text
        Debug.Print valSelected
         Copi_rap.ComboBox1.AddItem valSelected
    End If
Next

End Sub
Commenter la réponse de cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
0
Merci
En effet, j'ai mal détaillé le but de ce que je souhaite faire, en faite :

Toujours sur mon projet RapHebdo si tu te souviens, mais avec une grosse modif à la clé, il faut que je puisse faire en sorte qu'en une seul fois, je puisse faire un rapport mais pour plusieurs intervenants c'est à dire :

Dans la ListBox avec case à cocher, je sélectionne tous les intervenants de mon chantiers, il s'affiche pour memoire dans la listview ou autre (uniquement pour info, pour se rappeler qui on a sélectionné)

Je viens de mettre ton nouveau code en place en remplaçant le combobox par une listview, mais j'ai du mal comprendre... donc je vais pottasser un peu...

Merci pour ton aide,

Christian
--
jordane45
Messages postés
25780
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2019
312 -
Je ne t'ai pas dit de remplacer par la combo par listview...

Je t'ai demandé si c'était bien une LISTBOX que tu utilisais
Car je n'ai pas le souvenir qu'une LISTBOX puisse contenir des cases à cocher ....
Donc je suppose que ce que tu nomme LISTBOX est en fait une LISTVIEW


par contre:
sur mon projet RapHebdo si tu te souviens,
Non désolé... je vois tellement de messages et de projets (sans parler des miens) que je ne peux pas me souvenir de tous.. ;-)
Commenter la réponse de cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
0
Merci
Bon, ba c'est cérébrale alors... XD

J'utilise bien une ListBox et oui on peut avoir les cases à cocher dessus... ;)

j'ai plein de poste sur mon projet... avec plein de modif entre temps... mais je comprend que tu ne te souviens pas, mais tu m'as déjà aider sur ce projet... rappel toi... j'avais cru que j'avais a faire avec une fille... mais non... ;)

christian



--
jordane45
Messages postés
25780
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2019
312 -
Arf...oui... maintenant que tu le dis ^^

Bon... je viens de retester le code que je t'avais donné... il fonctionne :
J'ai ajouté une ligne pour "forcer" l'affichage de la valeur que tu viens d'ajouter à la combo..

Private Sub ListBox1_Change()
 LC = Copi_rap.ListBox1.ListCount
 Debug.Print LC

 Copi_rap.ComboBox1.Clear

 For i = 0 To LC - 1
  valSelected = Copi_rap.ListBox1.List(i)
   If Copi_rap.ListBox1.Selected(i) Then
    Copi_rap.ComboBox1.AddItem valSelected
     ' ***** Optionnel : ****************************
     ' Affiche la valeur ajoutée dans le combo...
     Copi_rap.ComboBox1.Value = valSelected
    '****************************************************
   End If
 Next

End Sub
Commenter la réponse de cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
0
Merci
Bonjour Jordan45

Alors nickel, ça fonctionne, avec une petite modification, j'explique vite fait...

Je n'avais pas le multiligne avec le ComboBox, je l'ai donc remplacé par une autre ListBox et là ça roule, le code reste le même sauf que j'ai remplacé combobox par listbox...

Merci pour le coup de pouce...

Cela dit, j'ai essayer de réaliser mon projet sous forme logiciel avec VB.NET et SQL server, mais je me suis bloqué sur SQL... j'y comprend strictement rien... donc en attendant VBA est le bienvenue ;)

Merci encore...

Christian

--
Commenter la réponse de cco86260
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
Bonjour,
"Je n'avais pasJ le multiligne avec le ComboBox"
Une combobox est forcément (par essence même) "multiligne" !
Tu confonds sans doute avec sa seule zone d'édition.
Commenter la réponse de ucfoutu
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
0
Merci
Hey !! bonjour Ucfoutu ;)

Comment vas-tu?

En fait pour ma combobox et l'histoire de multiligne je détail...

Quand ,dans ma ListBox, je cochais les noms des intervenants, il n'apparaissaient pas ligne par ligne mais se remplacaient ... donc oui je confond certaine multiligne et zone d'édition...

Christian

--
Commenter la réponse de cco86260
Messages postés
25780
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2019
312
0
Merci
Quand ,dans ma ListBox, je cochais les noms des intervenants, il n'apparaissaient pas ligne par ligne mais se remplacaient .
Heu... ce n'est pas possible....
Le code que je t'ai donné... je l'ai testé.... et il rempli correctement la combobox.

Tu sais que pour voir le contenu de ta combobox... il faut cliquer sur la petite flèche qui se trouve au bout ??

Commenter la réponse de jordane45
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
0
Merci
Jordane45,

Oui, mais en fait j'ai du mal m'expliquer... comment dire...

ma ListBox sert à sélectionner tous les intervenants présent sur mon chantier et le combobox sert (dans le cas d'une dizaine d'intervenants) à voir tout ceux qui sont sélectionné. On ne se trouve pas dans le cas d'une catégorie et sous-catégorie...

Comprends-tu..

Cela dis oui... ton code fonctionne y a pas de soucis... ;)

Puis sur ma combobox j'avais enlevé le Dropdown... vu qu'il ne me servait à rien...

Je ne cache pas qu'il est encore possible que j'adapte mal les contrôles en fonction de leur utilisation...

Christian
--
Commenter la réponse de cco86260