Afficher les éléments sélectionnés d'une listbox vers une combo

Résolu
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 - 16 avril 2014 à 12:49
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

9 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
16 avril 2014 à 13:25
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

1
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 avril 2014 à 13:51
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
--
1
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
16 avril 2014 à 15:16
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
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 avril 2014 à 16:09
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
--
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
16 avril 2014 à 16:21
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.. ;-)
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
16 avril 2014 à 17:20
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



--
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
16 avril 2014 à 18:31
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
0

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

Posez votre question
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
17 avril 2014 à 08:43
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

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2014 à 10:42
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.
0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
17 avril 2014 à 12:46
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

--
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
17 avril 2014 à 13:03
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 ??

0
cco86260 Messages postés 166 Date d'inscription dimanche 22 janvier 2012 Statut Membre Dernière intervention 30 juillet 2015 2
17 avril 2014 à 13:54
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
--
0
Rejoignez-nous