Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Simplifier le Tri Alphabétique d'un ComboBox.

  • Initiateur de la discussion Initiateur de la discussion YANN-56
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YANN-56

XLDnaute Barbatruc
Bonsoir à tous,

L'exemple joint montre le bon résultat de la méthode, mais je trouve que c'est une usine à gaz!

Avec une ListView; il suffit de lui dire qu'elle soit "Sorted", et c'est tout!
J'ai fouillé pour voir s'il était possible avec un ComboBox de faire aussi simple, mais en vain.

(Je ne manipule pas trop bien ce dernier)

Si cela n'est pas; tant pis! Je ferai avec. Tout en automatisant, bien sûr ce tri.

Merci à vous de me dire s'il y a autres façons expéditives, ou non.

Yann
 

Pièces jointes

Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonjour Fo_rum🙂, et à ceux qui passeront par ici,

Là! Je commence à avoir la tête comme une lessiveuse!!! 😕😕😕

Il va falloir réduire le feu...

Le "Dico": Je ne sais pas s'il existe dans ma version 2003..... Jamais cherché!
Le "Timer" que tu ajoutes .... Je ne pige pas trop l'utilité, mais sans doute tout est lié!

Quoiqu'il en soit; mes objectifs sont: "Simplicité, facilité d'adaptation, et rapidité"
Je ne le fais par pour moi, mais pour un jeune fort sympa, qui deviendra certainement un adepte fervent d'XLD.
Compte tenu de son cursus universitaire, je ne doute qu'il saura, par la suite, des meilleurs conseils.

De mon coté, je cherche toujours à vulgariser les codes, et limiter le nombre de lignes.
(Voire les déclarations inutiles et noms de variables pas bouffables)

Je vais donc passer outre le nombre de lignes, et tester ta solution, et ma dernière,
sur une copieuse base de données pour estimer les rapidités.

Merci beaucoup à toi, et bonne fin de journée,

Yann
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Et en plus David qui revient!

Vous vous êtes donné le mot pour me tuer! Non?
(J'ai transmis les pièces à ma fifille avocate..... On ne sait jamais!)

Je ne soupçonnais pas que ma petite question engendrerait tels débats,
et dois reconnaître que vos interventions sont des plus enrichissantes.

Pour moi, of course, mais aussi pour les visiteurs qui feront une recherche sur ce sujet. (175 affichages à cette heure...)

Tant pis pour mes économies. Je vais imprimer tous ces codes afin de tout étudier à tête reposée.😎
Apprendre à manipuler le VBA vaut bien une ramette et quelques cartouches d'encre.

N'est-il pas?

Merci David de m'aider ainsi, et de m'avoir boosté.

Amicalement,

Yann

P.S. "TRI_YANN" Joli nom pour un Classeur adressé à un Breton amoureux de sa musique régionale!!!!
 
Dernière édition:
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re (pour quelques précisions),

Le premier code ne devrait pas te poser de problème :
au lieu d'utiliser la seconde ListView 2 fois, je ne l'utilise qu'une fois mais avec 2 colonnes (1 par ComboBox) et je me sers de la possibilité de tri offerte par celle-ci.

J'ai mis le contrôle de durée simplement pour avoir une idée de la rapidité ou de la lenteur de telle ou telle procédure.

Les autres solutions qui t'ont été proposées sont surtout accès sur le tri sans doublon et il serait très intéressant de les voir dans ton contexte pour de meilleures comparaisons.

Celle de david84, préconisée par BOISGONTIER, est de loin la plus rapide pour le tri (combo ou pas). Attention, le tri n'est pas le même que celui d'une ListView (source : ici)

L'objet "Dictionary",disponible sur n'importe quelle version, permet d'éliminer les doublons très rapidement même avec de listes colossales.
Pour un Combobox, passer par "ListIndex "se révèle moins rapide mais bien plus court à écrire.

Les discussions traitant ce sujet ne manquent pas sur ce forum.
 
Dernière édition:
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonjour à tous,

Dans le cadre des économies budgétaires; on va limiter la production des usines à gaz.🙂

J'ai donc poursuivi mes recherches.

Conclusions:
- Avant de poser une question il est préférable de le faire!
- Le Forum par ses coups de pieds au c... a aussi du bon!

A noter que:
- Dans le cas où la Source soit une Feuille; cela ne change rien à la méthode,
- On peut s'abstenir de ces boutons qui ne sont là que pour l'exemple, et automatiser.
- Le tri Alphabétique n'est conservé ici que pour le confort éventuel de la visualisation.

Je joins ce dernier jet dans la même optique, qui est de partager:
(Voire aussi qu'encore simplifier cette procédure me soit proposé)

Serve à qui en aura le besoin, et Merci à ceux qui m'ont répondu.

Amicalement,

Yann
 

Pièces jointes

Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonjour,

Ah ben voilà quelque chose qui me plait, simple, efficace qui répond à un besoin précis "Simplifier le Tri Alphabétique d'un ComboBox" et ne réinvente pas la roue. Super!😀

Je suis sûr que si un jour tu as besoin d'un truc plus speed, tu sauras le trouver.

A+
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonjour
Ça deviendrait vite lent tout ça quand on approcherait le millier de lignes.
Ce qui n'est pas le cas de l'indexation effectuée par ma classe TableIndex ni donc de ma fonction PaquetSsDbl.
Au fait, j'en ai écrit une version qui fabrique un dictionnaire plutôt qu'un Array à deux éléments si ça vous intéresse.
Naturellement les items sont eux même des dictionnaires sauf ceux du dernier niveau qui sont des tables de n°de lignes.
Cordialement
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re Yann🙂,
Je ne me prononcerai pas sur le cas précis de ton fichier, mais sur les différentes procédures devant amener au résultat recherché, à savoir liste triée sans doublons :
à mon avis, le vrai test serait à faire en comparant les codes qui traitent en une seule procédure l'élimination des doublons et le tri, et ce sur une plage d'environ 10000 lignes. Et là tu pourras distinguer les codes efficaces et rapides des autres.

Pour exemple, test effectué vite fait sur ton fichier sur 5000 lignes :
- avec la procédure existante modifiée de manière à ce que le tri et les doublons soient traités sous la même procédure :
40 sec.
- avec un quick sort : c'est instantané.
Si cela t'intéresse, fais les tests de ton côté en incorporant d'autres procédures évoquées dans ce fil.
A+

Edit : le bonjour à Hasco🙂 et Dranreb🙂
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Pour information ma classe TableIndex utilise un quick sort unilatéral avec finalisation des partitions restantes de moins de 950 éléments à la méthode dichotomique avec décalages massifs des numéros en mémoire. Et c'est bien rapide...
À +
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re

Si comme je le pense, c'est le module de classe proposé et testé dans ce lien
il est extrêmement efficace et super rapide.
A+
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re,

Loin de moi de vouloir vous embêter mais j'aimerais rappeler le titre de la discussion "Simplifier le Tri Alphabétique d'un ComboBox".

Chacun a proposer sa solution pour arriver à ce but. Yann à fais son choix en fonction de son besoin. Parfait

Maintenant, est-ce qu'un fil avec une demande précise est le lieu pour entamer des discussions sans fin sur quelle est la bonne méthode pour trier n items? A mon avis il y a le salon pour ça.

A+

A+
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re à tous,

Merci Hasco pour le compliment.... 🙂Qui plus est, venant de ta part; j'en suis sensible.
Si j'ai relancé le Fil, ce n'est pas pour éventuels débats, mais pour partager avec ceux qui en auraient l'utilité.

Ton allusion à "Plus Speed" est corroborée par ce qu'en disent Dranred et David 84
Ma bidouille convient bien à une utilisation légère, mais s'avère limite par ailleurs.

Le Fichier "Tri_Yann56" de David84 rempli effectivement la fonction souhaitée.
Mais, avec ma tête de cochon Breton, je suis passé outre par ne comprenant pas tout!😕

La mise en garde unanime va m'amener à faire un effort coté comprenette!!!
D'autant que j'ai à manipuler des feuilles qui ont de l'ordre de 20000 lignes sur 14 Colonnes!!!
(Bases de Fournisseurs en quincailleries)

J'y retourne; et vu mon âge.....C'est bon pour les neurones. 😛

Quant à vos aides; elles sont excellentes pour le moral et la motivation.

Grand Merci à vous.

Yann
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Re

Pour le test: Ci-joint Classeur avec 22856 Lignes.

Il n'y a pas photo!!!!....... (De plus, mon "Truc" Plante dans cette configuration!) 😡

Ce qui n'est pas le cas avec la méthode de David.
 

Pièces jointes

Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonsoir,

Merci pour ce retour qui montre que c'est bien ici qu'on peut trouver des procédures efficaces (pas d'accord avec Hasco pour rejeter des discussions techniques, des solutions nouvelles dans le Salon).
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonjour.
j'aimerais rappeler le titre de la discussion "Simplifier le Tri Alphabétique d'un ComboBox".
Je prétends rester très largement dans la course à ce point de vue. En effet, on considère généralement avoir atteint ce but avec un code plus simple, même s'il faut pour qu'il marche avoir adjoint au classeur une macro complémentaire supplémentaire. Ne devrait il pas en être de même de modules à vocation utilitaire conçu pour n'avoir jamais besoin de retouche quel que soit le contexte d'utilisation ? Surtout s'il ne contiennent quand même pas des milliers de lignes ! Faudra-t-il que je propose mon module PaquetSsDbl et ma classe TableIndex dans un .xla avec projet VBA protégé par mot de passe pour que, dans l'évaluation de la simplification, la programmation de ces modules ne soit plus comptée avec ?
À +
 
Re : Simplifier le Tri Alphabétique d'un ComboBox.

Bonsoir Dranreb🙂, et tous les intervenants dont il me serait trop fastidieux de citer les pseudos,

Ce qui n'enlève rien à la richesse de leurs suggestions, que je continue à étudier en ce moment.

J'avais dit, et je le maintiens:
Si j'ai relancé le Fil, ce n'est pas pour éventuels débats, mais pour partager avec ceux qui en auraient l'utilité

et je me réjouis de la confrontation des "Ecoles" qui sera, somme toute,
bénéfique au final, et bien conforme à l'esprit d'XLD.

Voici un Melting pot bouillant des codes lus ci-avant.
J'y ai mis des barres de progression "Petites fleurs" qui ne sont là que pour rassurer l'utilisateur.
Elles n'aident pas à la rapidité, bien au contraire, mais démontrent la vitesse du tri des ComboBoxes.

Je ne sais pas si pour vous c'est le cas, mais quant à moi: Je me régale!!! Vive XLD! 😉

Amicalement,

Yann

P.S. J'ai ajouté en Jaune et en vert, des doublons dans la Feuille, car je n'en étais pas certain.
22856 Lignes sur deux colonnes, avec la ListView et 2 Combos cela fait 228560 Items vite gérés 🙂
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…