[RESOLU] - Marco - UserForm - 3 Listbox liées - VBA

  • Initiateur de la discussion Initiateur de la discussion FlorianECCO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FlorianECCO

XLDnaute Nouveau
Bonjour,

J'ai un problème concernant les Listbox.

J'ai fait une petite mise en bouche sur le fichier excel ci-joint.

Merci de votre aide

Voila mon problème :

Je cherche a avoir un UserForm qui donne :
- Listbox1 : Je choisi ma marque
- Listbox2 : Je choisi mon type (proposé en fonction de la marque)
- Listbox3 : Je choisi la taille (proposé en fonction du type)

Mon problème : L'index colonne de la listbox2 est en fonction de la listbox1 & donc l'index listbox3 ne peut pas être dans la même configuration
car les données ne sont pas disposés pareil qui dans le listbox2 ; Les références index ne sont pas bonnes.
Exemple VBA :
Pour la Listbox1 : Ok on définit la plage de celulles & on les ajoutes à la Listbox1

Pour la Listbox2 : Dim no_colonne_Type As Integer, nb_lignes_Type As Integer
no_colonne_Type = Listbox1.ListIndex
nb_lignes_Type = Worksheets("Feuil1").Cells(2, no_colonne_Type).End(xlDown).Raw
For T = 3 To nb_lignes_Type
Listbox2.AddItem Worksheets("Feuil1").Cells(T, no_colonne_Type)
Next

Pour la Listbox3 : Dim no_colonne_Largeur As Integer, nb_lignes_Largeur As Integer
no_colonne_Largeur = Listbox2.ListIndex
nb_lignes_Largeur = Worksheets("Feuil1").Cells(18, no_colonne_Largeur).End(xlDown).Row
For L = 18 To nb_lignes_Type
Listbox2.AddItem Worksheets("Feuil1").Cells(L, no_colonne_Type)
Next
 

Pièces jointes

Dernière édition:
Re : Marco - UserForm - 3 Listbox liées - VBA

Bonjour,

A mon sens et avant toute chose, il faut atomiser les données en autant de colonnes que de groupes existants (soit dans votre exemple : 3 colonnes)
Marque A Type A 1
Marque A Type A 2
Marque A Type A 3
Marque A Type A 4
Marque A Type Z 1
Marque A Type Z 2
Marque A Type Z 3
Marque A Type 2 2
Marque A Type 2 3
Marque B Type R 2
Marque B Type R 7
Marque B Type U 3
Marque B Type U 4
Marque B Type U 6
Marque B Type U 7
Marque B Type U 9
Marque B Type U 11
Marque C Type E 9
Marque C Type E 12
Marque C Type E 14
Marque C Type R 13
Marque C Type R 16
Marque C Type 4 2
Marque C Type 4 3
Marque C Type 4 7
Marque C Type 9 1
Marque C Type 9 3
Marque C Type 9 9
Marque C Type 9 10
Marque D Type 6 8
Marque D Type 6 15

A suivre ...
 
Re : Marco - UserForm - 3 Listbox liées - VBA

Bonsoir,

cf PJ

Code:
Private Sub UserForm_Initialize()
  Me.ListBox1.List = Application.Transpose([marque])
End Sub

Private Sub ListBox1_Click()
  Me.ListBox3.Clear
  p = Application.Match(Me.ListBox1, [marque], 0)
  h = Application.CountA(Range("marque")(1).Offset(1, p - 1).Resize(4))
  Me.ListBox2.List = [marque].Offset(1, p - 1).Resize(h).Value
End Sub

Private Sub ListBox2_Click()
  p = Application.Match(Me.ListBox2, [Type], 0)
  h = Application.CountA(Range("type")(1).Offset(1, p - 1).Resize(6))
  Me.ListBox3.List = [Type].Offset(1, p - 1).Resize(h).Value
End Sub

JB
 

Pièces jointes

Dernière édition:

Pièces jointes

Dernière édition:
Re : Marco - UserForm - 3 Listbox liées - VBA

Bonjour,

Voici un exemple.
Par contre tu ne devrais pas avoir de doublons dans les Types sinon ça pose problème.

Rebonjour à vous tous,

J'ai regardé ce que vous m'avez proposé avec attention & j'ai adapté ce que RENAUDER a partagé. J'ai aussi récupéré des morceaux de codes dans vos autres propositions.

Toutefois, j'utilise 2 menus déroulants pour Marque & Type et deux menus a sélection pour Largeur et Longueur.
J'ai une erreur qui s'affiche lorsque je souhaite changer la Marque, cela est lié au fait que les données contenus dans Types ne sont pas effacées.

Pour être plus claire : J'obtiens une erreur lorsque je sélectionne un Type et que je souhaite changer de Marque après.

=> Question : Comment vider la liste Type (& Largeur & Longueur) avant de la mettre a jour?

Merci encore pour votre aide,
Florian
 
Re : Marco - UserForm - 3 Listbox liées - VBA

Rebonjour à vous tous,

J'ai regardé ce que vous m'avez proposé avec attention & j'ai adapté ce que RENAUDER a partagé. J'ai aussi récupéré des morceaux de codes dans vos autres propositions.

Toutefois, j'utilise 2 menus déroulants pour Marque & Type et deux menus a sélection pour Largeur et Longueur.
J'ai une erreur qui s'affiche lorsque je souhaite changer la Marque, cela est lié au fait que les données contenus dans Types ne sont pas effacées.

Pour être plus claire : J'obtiens une erreur lorsque je sélectionne un Type et que je souhaite changer de Marque après.

=> Question : Comment vider la liste Type (& Largeur & Longueur) avant de la mettre a jour?

Merci encore pour votre aide,
Florian

Pas de réponse sur ce sujet, j'ouvre un nouveau sujet pour obtenir de l'aide sur cette nouvelle question.

Merci tout de même de votre aide qui m'a beaucoup avancé.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
419
Réponses
24
Affichages
2 K
Réponses
3
Affichages
967
Réponses
17
Affichages
2 K
Retour