faire un tri préalable à l'affichage dans un Combobox

poups

XLDnaute Occasionnel
Bonjour,
Je solicite votre aide

J'aimerais effectué un tri dans le combox2 (UserForm1) en fonction du choix réalisée dans le combobox1 choix relatif aux colones SAV dans une feuille qui doit correspondre à la colone usine dans l'autre.

Ainsi cela me permétrais d'affiché par défaut un nom et le cas échéant pouvoir choisir un autre interlocuteur dans la même usine.

J'éspère avoir été clair ...
Merci d'avance

Poups
 

Pièces jointes

  • ESSAI_SFF2013.xlsm
    42.4 KB · Affichages: 248

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

Bonjour
Un essai avec deux dictionnaires arborescents.
 

Pièces jointes

  • DicArbPoups.xls
    162 KB · Affichages: 244
  • DicArbPoups.xls
    162 KB · Affichages: 219
  • DicArbPoups.xls
    162 KB · Affichages: 250

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Merci a tous les deux !
C'est exactement ce que je voulais faire ....

@Mécano (toute mon enfance !)
Ton lien est tres tres intéréssant, je le met dans mes archives et je vais fouiller encore un grand merci
@Dranerd (j'ai aucune référence)
Tu est un chef merci !
Pourrais tu mettre des commentaires, que je compréne bien
Je dois le reproduire un autre UserForm, avec des conditions beaucoup moins simple

J'aime ce forum !
Poups
 

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

Voilà, j'ai mis quelques commentaires.
Si c'est dans un autre classeur ne pas oublier d'ajouter la référence "Microsoft Scripting Runtime" au projet VBA. (en plus du module MDictionnArbo et du module de classe TableIndex)
Par ailleurs si vous voulez utiliser mes dictionnaires arborescents pour des ComboBox en cascades, ou liés sans ordre de choix imposé, j'ai des modules de classes tout faits qui s'occupent de tout.
 

Pièces jointes

  • DicArbPoups.xls
    170 KB · Affichages: 273
  • DicArbPoups.xls
    170 KB · Affichages: 266
  • DicArbPoups.xls
    170 KB · Affichages: 241
Dernière édition:

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Merci pour les commentaires mr Dranred super !

J'avais bien ajouter la référence "Microsoft Scripting Runtime" dans mon projet VBA.
mais cela bloc a sur la fonction "DictionnArbo"
=> erreur de compilation ou sub non défini

Je suis en excel 2007, le tient 2003? marche tres bien sur mon post !

Merci d'avance a+
poups
 

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

Voulez vous dire que vous avez une erreur de compilation dans le module MDictionnArbo contenant cette fonction ou dans le module de classe TableIndex ?
Vérifiez s'il n'y a pas une référence manquante.
 
Dernière édition:

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Bonjour Danred,
Sur le cout, je suis largué
J'ai chercher par mot clé dans ta phrase tous ce qui aurrais pu me mettre sur la voie, sans résultat

Mon niveau est tres faible en VB, et en lisant ta phrase cela ne me permet pas de comprendre ce que je dois chercher pour solutioner mon PB:confused:

je pensais à "Dim DictionnArbo As Dictionary" mais c'est pas ca
pourquoi ton fichier marcherais, et pas le mien, c'est le même code ?

Pour moi, VB ne reconnait pas le module MDictionnArbo

Merci d'avance
Poups
 

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

Bonjour
Mais, dans l'explorateur de projets VBA, avez vous seulement glissé déplacé le module MDictionnArbo du projet du classeur DicArbPoups.xls vers celui de votre autre classeur pour y en installer une copie ? Pareil pour le module de classe TableIndex ?
 

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Je suis une purge ! :mad:

Je n'avais pas fait attention qu'il y avait une tableindex ..
Je n'avais encore j'amais utilisé cela, je vais donc regarder cela de pres

Je suis biensur intéressé par :
Par ailleurs si vous voulez utiliser mes dictionnaires arborescents pour des ComboBox en cascades, ou liés sans ordre de choix imposé, j'ai des modules de classes tout faits qui s'occupent de tout.

Merci beaucoup pour l'aide et la patience, dans d'autre forum il m'aurait déjà jeté !
Poups

PS cela marche !
 

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

J'ai donc simplement équipé le classeur de 3 modules de classes supplémentaires pour la gestion des ComboBox chainés, c'est à dire liés ou en cascades.
 

Pièces jointes

  • DicArbPoups.xls
    293 KB · Affichages: 229
  • DicArbPoups.xls
    293 KB · Affichages: 252
  • DicArbPoups.xls
    293 KB · Affichages: 260

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Merci beaucoup !

J'ai quand m^me une question
Je ne vois pas pas comment le tri est fait, et surtout ou sont les conditions du tri ?
est ce que tous ceci n'est valable que pour les combobox ?

Poups
 

poups

XLDnaute Occasionnel
Re : faire un tri préalable à l'affichage dans un Combobox

Je suis comme d'hab largé ...

L'affichage par défaut du combobox2 est lier à la colone D de la feuille "Données_Matériel" quand une selection dans le combobox 1 est réalisé (colone A), l'interlocuteur colone D est lié à un SAV(usine) colone C.

La liste de choix du combobox2 doit porté sur la feuille "Données_SAV" et tout les acteurs de ce SAV(usine) colonne G

Dans le cas présent la liste lié au combobox2 est la feuille "Données_Matériel" colone C et D

Comme j'ai pas encore tous compris, j'ai du mal a analysée les choses
Merci d'avance pour mes éclairsisements
Poups
 

Dranreb

XLDnaute Barbatruc
Re : faire un tri préalable à l'affichage dans un Combobox

Bonjour.

Les 3 modules de classes sont uniquement dédiés aux ComboBox
Dans ComboBoxLiés chaque ComboBox a à sa disposition deux dictionnaires arborescents à un seul niveau chacun, l'un pour tout le tableau et l'autre résultant d'un filtrage selon la liste des lignes possibles restantes en fonction des choix effectués dans les autres
Dans ComboBoxCasc (qui est plus rapide du coup) il n'est établi qu'un seul dictionnaire arborescent a autant de niveau qu'il y a de ComboBox, le premier recevant directement ses clés. Les suivants reçoivent les sous-dictionnaires successifs résultant des choix. Il n'y a plus tri mais plutôt sélection instantanée d'un sous ensemble préétabli.

J'ai apparemment mal interprété la demande car je ne me suis pas basé sur la colonne G des données SAV pour la liste du ComboBox2 mais sur la colonne B des Données_Matériel avec les noms correspondant de la colonne D.
Donc B et D et non C et D comme vous dites. Mais n'est-ce pas mieux ainsi ? Comme ça les données SAV ne sont qu'un annuaire, vous n'êtes pas obligé d'y noter l'usine, c'est toujours déduit des liens trouvés pour d'autres produits dans les données matériel. Mais évidemment s'il est aussi porté dans cet annuaire des personnes qui ne sont interlocuteur principaux d'aucun autre produit spécifique, ça ne va pas.
Dans ce cas il faudrait plutôt fabriquer le DicUs à partir des colonnes G et A de Données_SAV
 
Dernière édition: