Définir les valeurs d'une listBox en fonction d'une autre

Fermé
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020 - 28 janv. 2020 à 11:15
via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 - 29 janv. 2020 à 19:55
Bonjour,
je souhaiterais attribuer des listes différentes dans ma listbox en fonction d'une autre listbox.

Pour résumer, j'ai une listbox avec 5 (A à E)valeurs. Chaque valeur correspond à une liste (donc, 5 listes (ListeA à ListeE) regroupées pour le moment en une seule,.ce qui freine considérablement la recherche)

Ce qu'il faudrait :
ValeurA = ListeA (le choix de la valeur A dans la première listbox déclenche l'ouverture le la liste A dans la deuxième
ValeurB = ListeB.
et ainsi de suite jusqu'à E.

Quelqu'un pourrait-il me traduire cela en VBA ?
Merci d'avance pour votre aide.

7 réponses

via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 2 730
28 janv. 2020 à 11:48
Bonjour

Peux tu fournir un exemple de ton fichier en le postant sur mon-partage.fr; en copiant le lien créé et en revenant le coller ici

Cdlmnt
Via
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
29 janv. 2020 à 15:22
Bonjour et merci pour ta réponse. Désolé pour mon retard, mais mon ordi pro ne voulait rien savoir pour répondre...
Voici ci-dessous mon fichier.

https://mon-partage.fr/f/oWGGhk85/

Mon problème actuel est que je recherche les codes sans notion de BU. De ce fait, je me retrouve avec une liste de codes beaucoup trop important, et cela freine considérablement la recherche, voire, plante le tout...
Je voudrais, dans la partie bleue de mon formulaire, pouvoir créer des listes dans la listBox "CODE" en ayant fait un choix auparavant dans la listBox "BU". Même chose dans la partie grise, création de liste dans "Codes produits" après avoir sélectionné la BU dans la listBox du même nom.
Je pense que cela devrait alléger la recherche.

Les valeurs de ces listes se trouvent dans un onglet appelé "BUPROD".

Si tu peux pouvais m'apporter ton aide, ce serait vraiment sympa, je dois présenter ce tableau la semaine prochaine.

merci par avance.
Cdt
0
via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 2 730
Modifié le 29 janv. 2020 à 17:32
Bonjour

1) Nomme toutes tes plages de BURPROD par leur titre
Tu peux les nommer de façon dynamique de manière à ce que la référence s'adapte si tu rajoutes ou supprimes des items
Par ex pour la1ere à l'aide du Gestionnaire de noms - Définir un nom, comme nom tu mets OSE et dans Fais référence à la formule : =DECALER(BUPROD!$A$2;;;NBVAL(BUPROD!$A:$A)-1)

2) Dans ton userform dans l'éditeur clic droit sur la combobox de BU puis sur Code et tu complètes la Private sub de manière à avoir :
Private Sub ComboBox6_Change()
ComboBox7.RowSource = "=" & ComboBox6.Value
End Sub


Cdlmnt
Via

0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
29 janv. 2020 à 18:08
J'ai suivi les conseils de ton premier paragraphe, pas de soucis. Pour le deuxième, je n'ai rien compris.
De plus, dans la combobox BU, faut-il que je change les valeurs de base que je lui avais donné ?

Je te joins mon fichier modifié.

https://mon-partage.fr/f/HgRcIvEy/

Peux tu le regarder à nouveau et me réexpliquer la deuxième partie et son cheminement ? Personnellement, je ne connais quasiment rien, je me forme seul au fur et à mesure.

Merci encore
Cdt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 2 730
Modifié le 29 janv. 2020 à 18:40
1) Tu as mis comme noms des plages NOMOSE, NOMAE etc au lieu de simplement OSE, AE etc (puisque ce sont ces termes qui sont dans liste déroulante du combobx BU
Modifies déjà ces noms

2) Tu ouvres l'éditeur VBA
Tu cliques dans l'arborecence de gauche à Feuilles - Userform1 pour faire afficher ton UF dans l'éditeur. Tu cliques droit dans l'UF sur le combobox, tu choisis Code dans le menu qui s'affiche
et tu dois obtenir ta page des macros associées à l'UF avec en tête
Private Sub ComboBox6_Change()

End sub

tu mets dans cette Private Sub l'instruction
ComboBox7.RowSource = "=" & ComboBox6.Value

End Sub</code>
pour qu'à chaque changement dans le combobox6 (BU) la propriété RowSource (la plage source) soit modifiée; si dans Combobox6 tu choisis OSE la propriété RowSource de Combobox7 sera =OSE etc correspondant à tes plages nommées comme dit au 1)

Cdlmnt
0
#jquem# Messages postés 74 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 1 décembre 2020
29 janv. 2020 à 19:28
Merci !
Globalement, ça marche bien pour les listes. Le problème associé est que lorsque je clique sur le bouton "Insérer données", ça me laisse un message de débogage avec le code erreur "380". Ça me jaunit la partie suivante...
ComboBox7.RowSource = "=" & ComboBox6.Value

Ci-joint mon fichier modifié (j'ai modifié les noms en les remettant normalement (ONE, CC, CVS, etc...))

https://mon-partage.fr/f/vAHubIfA/

On y est presque. Merci encore
Cdt
0
via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 2 730
29 janv. 2020 à 19:55
Re

Je n'arrive pas à faire fonctionner ton fichier, il plante Excel !
0