Combobox en cascade dans un userform

Bonjour,

Je souhaite faire un fichier excel qui me servira à gérer mon armoire de produits chimique.

Page 1 : Une base de données fixe qui représente la liste exhostive des produits chimiques que je peux avoir avec diverses info sur ces derniers (risques, péremption, fournisseurs, commentaires...)

Page 2 : La liste des produits chimiquesqui se trouve dans l'armoire avec le rappel des risques entres autres la quantité en stock actuelle.

Dans mon userform Frm_appro, j'aimerais que mes deux combobox (cbo_recherche_intitulé et Cbo_Taille_Contenant) soit liées.

J'aimerais que la combobox "cbo_recherche_intitulé" pioche ses résultats sans doublons dans la colonne "Libéllé 1" de mon tableau "Armoire produit chimque" et que ma combobox "Cbo_Taille_Contenant" me propose les résultats en conséquences qui se trouve dans la colonne "Quantité par contenant (ml/g)"

J'ai essayé 1001 façons de faire, j'ai toujours des bugs.

Si qqun a une solution pas trop compliqué je prend

Un grand merci d'avance.

PS : Si je n'ai pas été clair dans mon explication, je suis à votre disposition.

Bonjour,

Difficile de s'y retrouver, pour certains points:

  • ton code mentionne un "cbo_Recherche_CAS" ... dont je n'ai pas trouvé trace dans ton UserForm Frm_Appro
  • dans ta "Sub cbo_recherche_intitulé_Change", tu testes le contenu de ta "cbo_recherche_intitulé". Tu vérifies si cbo_recherche_intitulé<>"" et , si le résultat du test est faux ... tu effaces son contenu (mais si elle n'est pas différente de "" ... c'est qu'elle est déjà vide, non? )
  • la première ligne de ton tableau Armoire_Chimique est masquée ... il y a une raison précise?

Pour répondre à ta question, au lieu de définir la propriété RowSource de ta ComboBox, tu peux utiliser l'événement Initialize de ton UserForm, pour "garnir" cette liste:

Private Sub UserForm_Initialize()
Set liste = CreateObject("scripting.dictionary")
For Each c In [Liste_Produits_Armoire]
    liste(c.Value) = ""
Next c
Me.cbo_recherche_intitulé.List = liste.keys
End Sub

L'utilisation d'un objet "Dictionary" permet de gérer facilement les doublons.

Pour la suite, à quel moment vas-tu "garnir" ta liste des tailles de contenant? Il semblerait logique de ne le faire qu'à la sélection d'un item dans la liste "cbo_recherche_intitulé"? Qu'en penses-tu?

Précise aussi ce que fera ce bouton "préremplir" que tu actives ou désactives?

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

Merci à vous deux,

Tu as fait un excellent travail Gmb, je n'en espérait pas tant.

Du coup j'en profite pour te re-solliciter.

A vrai j'aimerais encore ajouter l'élément "Cbo_Date_Péremption" dans la cascade de combobox après le choix de la quantité du contentant.

Par contre j'ai remarqué qu'il ne me prenait jamais en compte la première ligne.

Et j'aimerais si celà est possible que la listbox affiche tout les doublons même quand je continue mon tri avec les combobox.

Ensuite quand je valide une entrée ou une sortie, il va systématiquement me prendre la première ligne du libéllé qu'il a trouvé

et non la ligne concernée pour faire la modification dans le tableau.

Peux tu corriger ce problème ? (pour par dire "ces")

PS : Bien sur si qqun a des propositions d'aide je ne retiens personne

Un grand grand merci encore une fois.

Bonjour

Nouvelle version.

Bye !

Bonjour,

Alors on avance petit à petit, je suis très content de l'implication de certains d'entres vous.

A priori les filtres en cascades fonctionnent avec les 3 combobox.

En ce qui concerne la listbox, j'aimerais qu'elle se garnisse en fonction de ce que je met dans la combobox "cbo_recherche_intitulé"

sans prendre en compte le changement des autres.

En ce qui concerne le bouton ajouter, j'aimerais que lorsque je clique dessus il se passe

- Dans le cas où je ne change rien à la date de péremption : j'incrémente le nombre qui est dans la ligne concernée par le tri des combobox.

- Dans le cas où je change manuellement la date de péremption : Une ligne s'ajoute au tableau avec les diverses infos.

Encore une fois si je ne me suis pas fait comprendre, je suis à votre disposition.

Un grand merci encore une fois

Nouvelle version.

Quand tu écris :

Dans le cas où je ne change rien à la date de péremption : j'incrémente le nombre qui est dans la ligne concernée par le tri des combobox.

...je ne vois pas de quel nombre et de quelle ligne tu parles.

Bye !

voici 4 combobox en 1

merci

Bonjour,

Ce que tu as fais avec la liste box, c'est exactement ce que je veux, je t'en remercie beaucoup.

En fait dans mon tableau "Armoire produit Chimique" il peut y avoir des produits avec la même taille de contenant mais avec différentes dates de péremption.

Donc en gros quand j'ajoute un produit je suis confronter à un choix :

Soit la date de péremption est la même et j'ai juste à cliquer sur ajouter et dans ce cas il va m'additionner la quantité arrivée "txt_Quantité_Arrivée" à la colonne "Nombre de contenants" sur la ligne correspondante à mon choix c'est à dire celle qui correspond à mon filtre des 3 combobox.

Soit je change la date manuellement et dans ce cas quand je clique sur ajouter j'aimerais qu'il m'ajoute simplement la ligne avec les info à la suite du tableau.

Est ce que j'ai réussis à t'éclairer ?

Merci beaucoup encore

Bonjour

Nouvelle version

Bye !

C'est juste niquel !!!

Il reste encore à supprimer les doublons dans la combobox des contenant et dans celle de la date de péremption.

En tt cas gmb je te remercie vraiment en particulier toi pour ta participation.

Comment je fais pour te joindre toi si jamais j'ai un petit soucis de vba ? ^^

Bonjour la communauté !!

Je reviens à vous pour un petit soucis, je souhaiterais supprimer les doublons de mes 3 combobox en cascade de mon userform "Frm_Appro"

Normalement c'est déjà le cas pour la première combobox (cbo_recherche_intitulé)

Il reste les combobox : Cbo_Taille_Contenant et Cbo_Date_Péremption.

Je vous en remercie d'avance.

Bon weekend à vous !!

Bonjour

Un essai à tester.

Bye !

JUSTE PARFAIT !! MERCI BCP !!!

Rechercher des sujets similaires à "combobox cascade userform"