Enlever les doublons Dans une listeBox

  • Initiateur de la discussion Dop421
  • Date de début
D

Dop421

Guest
Bonjour

J'aimerais savoir si quelqu'un a un moyen simple de filtrer les doublon dans une listebox. Soit au moment ou elle est chargé. Soit après coups

j'étais partie pour utiliser un code avec une boucle for each listitem in ma liste mais je me complque la vie

merci de vos lumière !

dop
 
@

@+Thierry

Guest
Bonsoir Dop, Minick

Ah oui "excellent" fil Minick, (j'aime bien la fin), et Dop y trouvera le lien pour la "Compile Démo D'Incrémentation de Donnée sur ListBox"... (Doublon y compris)

Bonne Soirée
@+Thierry
 
D

Dop421

Guest
Oula, c de qualité ta démo. Je la garde dans un coin, ça sert toujours ce genre de fichier ;-).
Bon par contre les deux dernières méthodes ne fonctionne pas sur ma version d'excel là .... mais comme je doute que ce soit une erreur de ta part je vais me débrouiller avec.

Merci bien !

Dop
 
D

Dop421

Guest
Arf ... en fait je crois bien que je suis incapable de corriger ces erreurs. le code n'est pas de mon niveau (je comprend pas bien ces hisoire de collection ) ! lol
Le mieux pour mes besoins serait cette méthode
AddItem_Loop_Sort_Unique_Records_Collection_On_Dynamic_Array()
Mais Je me suis jamais servi de ce genre de méthode et quand je clique dessus j'obtiens une erreur "cette clée est déja associé a un élément de cette collection".
L'aide d'excel ne m'a pas beaucoups éclairé sur cette erreur ... Pourrais tu me dire ce qui ne va pas ?

Encore un petit soucis, la liste que je veut construire doit s'alimenter a partir de 3 pages différentes, sur 13 colonnes a chaque fois ( et avec plein de doublon ) est-ce que ça ne poseras pas un problème suplémentaire ?
Pour l'instant la lisque j'arrive a faire evite les blancs meme elle est pleine de doublon ... enfin bref.
En tout cas bravo pour la démo, et histoire de jetter un peu d'huile sur le feu, je ne la trouve pas du tout usine a gaz. Au contraire, chaque méthode est séparé clairement. avec avantage et défault, c'est très bien foutu.

Dop
 
@

@+Thierry

Guest
Bonsoir Dop, Minick, le Forum

Désolé des délais mais je n'ai pas eu beaucoup de temps dispo.

La méthode New Collection est très pratique pour filtrer les doublon. En effet elle a cette particularité d'utiliser une Key d'index d'enregistrement qui doit être forcément unique....

Hors, lors d'une Collection où l'on force l'indexation avec l'item lui même comme ceci :

For i = LBound(T) To UBound(T)
TheList.Add T(i, 1), T(i, 1) '<<<<<<<< Le Second est l'index KEY
Next

Si un item est en double dans sa Clef on génère immédiatement une erreur 13 "incompatibilité de type" puisqu'il y a une clef en double, donc en "sautant" l'erreur comme ceci on passe à l'item suivant et donc on n'a pas de doublon dans la collection.

For i = LBound(T) To UBound(T)
On Error Resume Next
TheList.Add T(i, 1), T(i, 1)
Next


C'est Hurricane qui a introduit cette méthode dans le Forum il y a un bail, à l'époque j'avais trouvé ceci surprenant, depuis je l'utilise dans multes programmes.
Voir ce Fil et autres démos Lien supprimé

Par contre pour ton problème de message d'erreur Dop, c'est quoi exactement et sur quelle ligne le code est surlignée ? Et, of course, tu devrais préciser ta Version d'Excel ? et de Windows ?

Et aussi vu qu'aucune erreur n'avait été reportée lors du "vernissage" de cette démo Lien supprimé parlons-nous bien du fichier démo d'origine ou d'une version que tu aurais tenté d'adapter ?

Bonne Soirée à Tous et Toutes
@+Thierry
 
D

dop421

Guest
Bonjour @+Thierry, le forum

Loin de moi l'idée de dire que c'est ton code qui est responsable de l'erreur ( je me doute bien que tu t'en serais rendu compte avant ) ! et je savais bien que le soucis venais de chez moi

En fait j'ai trouvé a l'instant la solution, grace a tes explication plus détaillé sur la méthode.
--> Je viens de comprendre que cette méthode déclenché volontairement un erreur, qui etais sauté grace au gestionaire d'erreur. Et là ça a fait un déclick : j'ai coché l'option s'arreter a toute les erreurs. Et en cochant a la place "s'arreter sur les erreur non géré" ça marche a merveille.

merci bien pour les eclaircissements sur cette méthode très puissante !

Dop421

P.S : euh ... est-ce que ça te dérange si je re-poste ici un peu plus tard ou je n'arriverais a adapter pleinement cette méthode a mon cas ? ... lol
 
@

@+Thierry

Guest
Salut Dop, le Forum

Ah mais c'est bien sûr, cette option "s'arrêter sur toute les erreurs", je n'y avais plus pensé à cette option... En fait ce devrait être même annoncé dans le message d'erreur cette histoire d'option !!!

Enfin tout est bien qui fini bien, mais comme çà je me remémorerai cette satanée option qui m'avait aussi posé un problème une fois avec Pat5 sur ce Forum si je me souviens bien, on avait même envoyé Rambo pour chasser les Bugs !! lol

Bon Aprèm
@+Thierry
 
D

Dop421

Guest
salut thierry, le forum.


J'ai du mal a adapter la méthode new collection a mes besoins. Si tu pouvais me conseiller une alternative ça serait sympa

je m'explique
1° la plague de donnée est composé de 3 * 13 colonne sur 3 feuilles différentes. ça a la rigueur c pas le plus dur.
2 ° Je ne veut pas récupérer l'intégralité de la cellule mais juste une partie bien précise. Les donnée sont "encapsulé" au format suivant
(jj/mm/aaaa:NomEtudeEn15caractères/x) et il peut y avoir jusqu'a 25 capsules par cellules

et je veut juste récupérer tout les Nom d'édude différent sur les 3 feuilles ( pas de doublon donc )
Pour extraire le nom de l'étude j'utilise une procédure qui me sert ailleurs dans le programme. Elle marche
J'arrive sans problème a avoir une listebox comportant toute les noms d'etude mais il ya des dizaines de doublons !!

je penssais arriver a adapter ta méthode mais je ne sais pas si c'est trop possible en l'état actuel des choses. Qu'en pensse tu ?

Ne connaitrais tu pas une méthode pour effectuer un tri APRES le chargement de la list box ?

j'aimerais te joindre un exemple pour éviter les post-fleuve comme celui ci mais le fichier est trop gros ( meme en supprimant tout ce qui sert a rien )

Dans l'attente d'un avis, merci de m'avoir lu jusque là ;-)

Dop
 
@

@+Thierry

Guest
Bonsoir Dop, le Forum,

Je suis désolé mais je ne fais que des interventions très sporadiques dans le Forum en ce moment car je viens à peine de finir ma journée de boulot et je n'ai vraiment pas trop de temps pour consacrer à des sujets/projets qui risquent de m'impliquer plus de 10 minutes.

Tout d'abord parceque lorsque j'aurai plus de 10 minutes j'ai deux "commandes XLD" en attente, une pour les "Tables de Multiplication Pédagogiques pour gamins handicapés" et une autre encore plus ancienne pour des "Elections Professionnelles"....

A la volée ce que je peux te conseiller c'est des démos que j'ai faites sans la méthode Collection :

USF_Intelligent_Combo_Reactiv-V01.02.zip

Lien supprimé

Dans la première c'est une incrémentation des données sur ComboBox provenant de plusieurs feuilles avec Tri...

La seconde gère le tri et les doublons...

Bon Courage et nuit
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 367
Messages
2 087 649
Membres
103 628
dernier inscrit
rou37x