TRIER DES ITEM COMBOBOX LIEES [Résolu]

CIBOOX 5 Messages postés lundi 4 décembre 2006Date d'inscription 3 février 2007 Dernière intervention - 1 févr. 2007 à 22:11 - Dernière réponse : jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention
- 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

jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 févr. 2007 à 14:54
+3
Utile
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...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 3 févr. 2007 à 16:08
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_MPi
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 févr. 2007 à 18:41
+3
Utile
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.






 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 1 févr. 2007 à 22:17
0
Utile
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
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 1 févr. 2007 à 22:45
0
Utile
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
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 1 févr. 2007 à 23:02
0
Utile
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
CIBOOX 5 Messages postés lundi 4 décembre 2006Date d'inscription 3 février 2007 Dernière intervention - 3 févr. 2007 à 09:55
0
Utile
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
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 févr. 2007 à 10:16
0
Utile
Concaténe, trie ... et re-éclate...
Commenter la réponse de jmfmarques
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 3 févr. 2007 à 13:24
0
Utile
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
CIBOOX 5 Messages postés lundi 4 décembre 2006Date d'inscription 3 février 2007 Dernière intervention - 3 févr. 2007 à 14:43
0
Utile
ok  mais comment faire ?
Commenter la réponse de CIBOOX
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 févr. 2007 à 14:45
0
Utile
Concaténe, trie ... et re-éclate...
(2ème édition)
Commenter la réponse de jmfmarques
CIBOOX 5 Messages postés lundi 4 décembre 2006Date d'inscription 3 février 2007 Dernière intervention - 3 févr. 2007 à 14:55
0
Utile
un petit code sera le bien venu
Commenter la réponse de CIBOOX
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 févr. 2007 à 15:01
0
Utile
Je suggère vraiment que tu essayes au moins tout seul....
Nous serons nombreux à corriger si nécessaire.
Commenter la réponse de jmfmarques
CIBOOX 5 Messages postés lundi 4 décembre 2006Date d'inscription 3 février 2007 Dernière intervention - 3 févr. 2007 à 15:18
0
Utile
petite question  comment appliquer propriete sorted = true  ?

 je suis en vba excell2000
Commenter la réponse de CIBOOX
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 3 févr. 2007 à 15:31
0
Utile
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
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 4 févr. 2007 à 03:49
0
Utile
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
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 4 févr. 2007 à 07:39
0
Utile
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.