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

Microsoft 365 Combobox alimente listbox en supprimant doublon et triée

Superemi

XLDnaute Junior
Bonjour à tous, le forum,

Il y a des sujets déjà existants à partir desquels je me suis inspiré mais je bloque sur sur la listbox.

J'alimente la combobox en supprimant les doublons et en triant.
En fonction du choix de la combobox, je souhaite avoir dans la listbox les valeurs filtrées, sans doublons et triée.

J'ai ce message d'erreur et je n'arrive pas à trouver la solution. Pouvez-vous m'aider ?
"Cette clé est déjà associée à 1 élément de cette collection"
 

Pièces jointes

  • TEST.xlsm
    143.4 KB · Affichages: 5
Solution
En retour ton fichier avec quelques corrections

si j'ai bien compris, tu prends les types Sans doublon dans un dictionnaire
et ensuite, tu mets ca dans une collection pour pouvoir faire un tri avant de remettre dans le combobox

plutot que la collection, j'utilise une fonction de tri

ensuite, en fonction du type selectionné, tu fais la liste sans doublon des males
idem pas besoin d'une collection, juste le tri
le message d'erreur "clé associée" vient du fait qu'il essaie de recreer la meme clé..
1) tu prends le type en guise de clé.. au lieu du "male"
2) un truc que je n'ai jamais compris, c'est que on ne peut pas faire le test "if mondico.exist(Nomclé)" en mettant un "calcul" en guise de NomClé ==> ici; cel.offset(0,-14)
à priori...

vgendron

XLDnaute Barbatruc
Bonjour

ton fichier ne doit pas etre celui sur lequel tu travailles.. parce que moi, quand je lance l'usrf, j'ai un message d'erreur
For sans next
si je corrige
j'ai un with sans end with..

donc à priori, ce fichier provoque d'autres erreurs avant celle dont tu nous parles
 

Superemi

XLDnaute Junior

Bonjour vgendron, effectivement j'ai oublié un Next, j'ai corrigé. Je repartage le fichier.
 

Pièces jointes

  • TEST.xlsm
    144 KB · Affichages: 9

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour

Voici qui est corrigé dans le fichier joint.

Comme vous chargez vos listes avec les clefs du dictionnaire, passez vous de leur valeur et tout ira bien.

Un objet Dictionary permet de faire : mondico(clef) =""
Les clefs existeront avec des valeurs vides.
Si la clef existe le dictionary ne dira rien, si elle n'existe pas, il l'ajoute.

Mais une idée comme ça. Avec 365 et les nouvelles fonctions UNIQUE, FILTRE, SORT, TRIER etc.. Vous pourriez faire la même chose facilement dans une feuille de calcul. Voyez l'exemple sur la feuille 'Feuil1' que j'ai rajoutée.

cordialement
 

Pièces jointes

  • Superemi.xlsm
    147.4 KB · Affichages: 12

vgendron

XLDnaute Barbatruc
En retour ton fichier avec quelques corrections

si j'ai bien compris, tu prends les types Sans doublon dans un dictionnaire
et ensuite, tu mets ca dans une collection pour pouvoir faire un tri avant de remettre dans le combobox

plutot que la collection, j'utilise une fonction de tri

ensuite, en fonction du type selectionné, tu fais la liste sans doublon des males
idem pas besoin d'une collection, juste le tri
le message d'erreur "clé associée" vient du fait qu'il essaie de recreer la meme clé..
1) tu prends le type en guise de clé.. au lieu du "male"
2) un truc que je n'ai jamais compris, c'est que on ne peut pas faire le test "if mondico.exist(Nomclé)" en mettant un "calcul" en guise de NomClé ==> ici; cel.offset(0,-14)
à priori, vba doit d'abord évaluer cel.offset(0,-14) avant de regarder si la clé existe

je contourne ca toujours en mettant une variable juste avant

voir code
 

Pièces jointes

  • TEST (1).xlsm
    137.8 KB · Affichages: 20

Discussions similaires

Réponses
16
Affichages
676
Réponses
25
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…