TRIER DES ITEM COMBOBOX LIEES [Résolu]

Messages postés
5
Date d'inscription
lundi 4 décembre 2006
Dernière intervention
3 février 2007
- - Dernière réponse : jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
- 4 févr. 2007 à 07:39
 Bonsoir je cherche un code qui me permetrais de voir les items  triés ( ordre croissant ) de mes combobox   sachant que celleci sont  liées  
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
3
Merci
Explication, quand même (si vraiment nécessaire)
- Dans cellule de la colonne à trier de combo1, j'ai "toto"
- dans cellule correspondante de combo2, j'ai "titi"
- je "construis" pâr concaténation la chaine "toto#titi" dont j'alimente, pare exemple, une listbox (entre autres possibilités) avec proriété sorted = True
- je me retrouve avec une liste triée d'éléments de type "AAAAA#BBBBB" qu'il ne me reste plus qu'à "éclater" avec le séparateur # pour envoyer "AAAAA" vers une textbox et "BBBBB" vers l'autre, dans le même ordre que celui obtenu par le tri.
Voilà le principe (plus qu'élémentaire) pour une cellule par colonne... Et ce principe est vraiment simple.
A comprendre et adapter...

Dire « Merci » 3

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

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de jmfmarques
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Ne pas oublier que sous Excel, on peut avoir des combobox à plusieurs colonnes. Peut-être pourrais-tu charger tes deux combobox en un seul. À ce moment, tu pourras trier comme tu veux et chaque élément sera toujours correspondant à son "voisin"...

Une idée comme ça...

MPi

Dire « Merci » 3

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

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
3
Merci
Bob.... tu ne sembles pas t'en sortir..

Alors voilà :
Sur ta Form, une listbox nommée List1, avec sa propriété visible <gras>False et sa proriété Sorted</gras> True
et un bouton de commande nommé Command1

En admettant que tes 2 comboboxes soient nommées Combo1 et Combo2

Private Sub Command1_Click()
  joignons Combo1, Combo2
End Sub


Private Sub joignons(cb1 As ComboBox, cb2 As ComboBox)
  For i = 0 To Combo1.ListCount - 1
    List1.AddItem Combo1.List(i) & "#" & Combo2.List(i)
  Next
  For i = 0 To List1.ListCount - 1
    Combo1.List(i) = Mid(List1.List(i), 1, InStr(List1.List(i), "#") - 1)
    Combo2.List(i) = Mid(List1.List(i), InStr(List1.List(i), "#") + 1)
  Next
End Sub

J'ai choisi d'envoyer vers une listbox car plus facile pour toi, mais tu pourrais bien évidemment envoter dans un tableau, trier ce tableau comme expliqué plus haut, puis réinjecter de la même manière.






 

Dire « Merci » 3

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

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de jmfmarques
Messages postés
6812
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
21 décembre 2011
0
Merci
Salut,

aide toi de cette fonction pour trier les items de ton Combo :
http://www.codyx.org/snippet_trier-donnees-tableau-liste-as-string_278.aspx

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
0
Merci
Salut Ciboox,

Mortalino >> Bonjour >> C'est la folie la différence de l'évolution du langage, en VB, tu fait propriété Sorted sur True, et là tu as tout une tartine de code!!!

A+
Exploreur
Commenter la réponse de cs_Exploreur
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
Tu as bien raison Exploreur, mais ce n'est pas qu'une simple évolution.

En VBA, on peut insérer des colonnes, ce qu'on ne peut pas en VB...
Et pourtant les 2 langages sont si ressemblants...
Ils auraient pu prendre le meilleur des 2 types de contrôles et les rendre "travaillables" dans les 2 environnements, mais il semble que ce soit trop compliqué pour une équipe de quelques milliers de programmeurs...

MPi
Commenter la réponse de cs_MPi
Messages postés
5
Date d'inscription
lundi 4 décembre 2006
Dernière intervention
3 février 2007
0
Merci
En fait je cherche un code qui tri les item de n'importe qu' elle combobox mais qui ne touche pas a leurs index  car ceux ci sont lies
Commenter la réponse de CIBOOX
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
Concaténe, trie ... et re-éclate...
Commenter la réponse de jmfmarques
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
Si le tri est utile pour visualiser mais que tu ne veux pas modifier les Index, je pense que tu devras passer par des tableaux.

Une fois les comboboxes chargées, tu envoies les valeurs dans un tableau, puis tu tries les comboboxes. Si tu veux faire références à certains items, tu recherches dans les tableaux pour retrouver les correspondances.

Est-ce que ça fait du sens ?

MPi
Commenter la réponse de cs_MPi
Messages postés
5
Date d'inscription
lundi 4 décembre 2006
Dernière intervention
3 février 2007
0
Merci
ok  mais comment faire ?
Commenter la réponse de CIBOOX
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
Concaténe, trie ... et re-éclate...
(2ème édition)
Commenter la réponse de jmfmarques
Messages postés
5
Date d'inscription
lundi 4 décembre 2006
Dernière intervention
3 février 2007
0
Merci
un petit code sera le bien venu
Commenter la réponse de CIBOOX
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
Je suggère vraiment que tu essayes au moins tout seul....
Nous serons nombreux à corriger si nécessaire.
Commenter la réponse de jmfmarques
Messages postés
5
Date d'inscription
lundi 4 décembre 2006
Dernière intervention
3 février 2007
0
Merci
petite question  comment appliquer propriete sorted = true  ?

 je suis en vba excell2000
Commenter la réponse de CIBOOX
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
0
Merci
Salut,

Il me semble sauf erreur de ma part, que Mortalino ta déjà répondu à cette demande en début de post.
A+
Exploreur
Commenter la réponse de cs_Exploreur
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
JMF, la propriété Sorted en VBA n'existe pas pour les Combobox ou les Listbox.

Par contre, il pourrait utiliser ta méthode après avoir trié sa listbox "manuellement" ...

Comme je disais dans un précédent message, je ne comprends pas pourquoi cette propriété Sorted n'existe pas en VBA, compte tenu que les 2 contrôles proviennent de la même boîte (MicroDoux). Dans un même ordre d'idée VBA permet de créer des colonnes dans ces 2 contrôles, mais pas VB5 ou 6...

MPi
Commenter la réponse de cs_MPi
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
0
Merci
Bon, si la propriété sorted n'existe pas en VBA pour une listbox non plus, il lui suffit d'utiliser le tri d'un tableau, comme dit plus haut ("J'ai choisi d'envoyer vers une listbox car plus facile pour toi, mais tu pourrais bien évidemment envoter dans un tableau, trier ce tableau comme expliqué plus haut, puis réinjecter de la même manière.")...
Mais, puisqu'il est sous VBA et si ce tri l'ennuie, il peut également utiliser tout bêtement une feuille (des cellules) dédiée à cet effet et, dans ce cas là, il n'aurait même plus besoin d'utiliser le truc du séparateur # !  Envoi simple des éléments des 2 combos dans 2 colonnes côtes à côte ==>> tri sur une colonne ===>> récupération du résultat par injection de chacune des 2 colonnes dans la combo qui lui correspond .


 
Commenter la réponse de jmfmarques

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.