Userform et combobox

Bonjour à tous,

Je vous sollicite car je n'ai pas de base en VBA et je n'arrive pas à prendre le sujet par le bon bout...

Je veux créer un formulaire qui s’appuie sur un tableau excel qui est en fichier joint,

Je veux donc en valeur de sorti (dans le textbox) afficher le numéro du tableau qui correspond aux critère suivants:

On sélectionne d'abord A ou B (=Combobox1)

Si on a sélectionner B alors on filtre les choix dans la combobox 2 (càd on n'a plus le choix qu'entre Toto,tata,titi,tonton,toutou=>pas de doublons)

Quand on a sélectionner par exemple Tonton, on a le choix pour la combobox 3 entre C D

Puis si on Sélectionne dans la combobox 4: Y

On chois pour la combobox E

Puis on choisi avec des optionbutton I ou J (nous on prend J )

Ainsi on affiche dans la listebox la valeur de la case soit 23!

Cet exemple est un peu mieux détaillé dans la pièce jointe,

Merci d'avance pour vos explications, en espérant avoir été clair, n'hésitez pas à me demander des détails.

Cordialement,

Wal

explication

Bonjour

Wal a écrit :

un tableau excel qui est en fichier joint

Perdu c'est une image, et travailler sur une image on ne s'appelle pas PhotoShop (ou autre)

Merci pour cette remarque très pertinente. J'en prends note et pour ce qui n'aurait toujours pas compris, je vous ai exposé le problème par un schéma. Ce qui est important me semble-t-il, c'est l'explication et non pas le support.

Bonjour

Bien sur si tu le dis

Moi je rajoute : Essayes de faire des essais sur ton image

Passes une bonne journée

J'ai un nouveau problème, cette fois je fourni le code

Je veux concevoir un userform qui filtre les données: La 1ere combobox = différentes équipes (A,B,C...)

La 2eme s’appuie sur la 1ere et donne le nom de l'équipe sélectionné ds la Combobox1 ((Pierre, jean); (Romain, Marie...)).

Le troisième donne le choix entre deux objets d'un joueur!

Voici le code que j'ai fait:

Private Sub UserForm_Initialize()
    ComboBox1.List = Worksheets("Sheet1").Range("A1:A10").Value
    Me.ComboBox1.ColumnCount = 1
    Me.ComboBox2.ColumnCount = 1
    Me.ComboBox3.ColumnCount = 1
End Sub

Private Sub ComboBox1_Change()

    Dim Plages
            If Me.ComboBox1.ListIndex = -1 Then Exit Sub
            Plages = Array(Array("Pierre", "Paul"), Array("Amandine", "Clara"), Array("Fabien", "Emile"), Array("Daniel", "Olivier", "Antoine"), Array("Jean", "Philip"), Array("Jeremy", "Florent"), Array("Antony", "Romain"), Array("John", "Harry"), Array("Alphone", "Edward"), Array("Tobi", "Madara"))
            Me.ComboBox2.List() = Plages(Me.ComboBox1.ListIndex)
            Me.ComboBox2.ListIndex = -1
            If Me.ComboBox2.ListCount = 1 Then Me.ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox2_Change()

    Dim Plage
            If Me.ComboBox2.ListIndex = -1 Then Exit Sub
            Plage = Array(Array("Chemise", "Veste"), Array("Casquette", "Chapeau"), Array("botte", "balrine"))
            Me.ComboBox3.List() = Plage(Me.ComboBox2.ListIndex)
            Me.ComboBox3.ListIndex = -1
            If Me.ComboBox3.ListCount = 1 Then Me.ComboBox3.ListIndex = 0
End Sub

Le problème que je rencontre est que pour la 3eme combobox, on a pas le choix correspondant aux personnes:

Dans l'équipe A, Pierre doit avoir le choix entre Chemise ou Veste, Paul doit avoir le choix entre Casquette ou Chapeau.

Dans l'équipe B, Amandine doit avoir le choix entre botte ou balrines...

Ainsi de suite pour les autres groupes.

Merci de vos réponses, n'hésitez pas à me demander plus d'infos ou des reformulations!

Cordialement,

WAL

463combobox.xlsm (21.56 Ko)

Bonjour

Juste un avis personnel, j'ai regardé ton code (pas ton fichier) et tu vas vers des complications énormes

Déjà pour la ComboBox2 il faut un tableau de tableaux, donc pour la ComboBox3 il te faudra un tableau de tableaux de tableaux

Et pour accéder à un élément ... et bien je ne vois pas

Mais bon je suis très loin de tout connaitre, mais je suivrais l'évolution de ce sujet avec intérêt

Je suis de ton avis Banzai: je vais vers

des complications énormes

Mais je ne sais pas par quel bout prendre le problème, si tu étais à ma place comment t'y prendrais tu?

En te remerciant pour tes réponses

cordialement

Bonjour

Je passerai par des données stockées dans une feuille (qui peut-être masquée)

Une colonne tous les groupes

Autant de colonnes que de groupes : Entête le nom du groupe, en dessous la liste des noms (attention nom unique)

Autant de colonnes que de noms : Entête le nom en dessous la liste des vêtements

Ensuite cela peut se faire (enfin je crois)

Bonsoir

Voici l'idée

Bonjour Banzai, d'abord merci de ta réponse. Ton code est très bien sauf que mon problème est plus complexe que ce que je t'ai présenté:

En réalité

l'équipe 1 est fait de A et B,

L'équipe 2 de A, B et C

L'équipe 3 de A,B et C

L'équipe 4 de A et C

L'équipe 5 de A,B et C

L'équipe 6 de A et B

L'équipe 7 de A

L'équipe 8 de A, B et C

L'équipe 9 de A, B et C

L'équipe 10 de A, B et C

Les éléments associés à A, B et C varient en fonction des équipes (voir problème précedent).

Avez-vous une solution?

Merci

Bonjour

Tu veux dire qu'une même personne peut faire partie de plusieurs équipes ?

Et en fonction de l'équipe il n'aura pas les mêmes objets

Exemple quand Jean est dans l'équipe A il a le choix entre chemise et pantalon , mais quand il est dans l'équipe B il a comme choix entre une casquette ou un chapeau etc....

Comment gérer cela, je n'en sais rien

Pas sur que je trouve une solution

Je vais y réfléchir

Tout à fait, c'est exactement ça!

Je te remercie pour ton temps

Bonjour Banzai,

J'ai une proposition à mon problème peux-tu me dire si elle est réalisable?

Pour les éléments de chaque équipe on leur donne un indice

ex: Equipe 1= A1 et B1

Equipe 2=A2, B2 et C2...

ect...

L'astuce serait de rendre invisible l'indice qui est appelé dans le combobox c à d que dans le menu déroulant on a A(1),B(1)... sans que les 1 ne s'affichent.

Est-ce possible?

Cordialement,

Wal

Rechercher des sujets similaires à "userform combobox"