Bonjour à tous!
Des petites explications s'imposent.
je vous mets le contexte: j'ai dans un tableau en 10x4 différents fruits avec différentes variétés et d'autres données comme la quantité de la variété en stock ou son numéro de référence. En appuyant sur le bouton à coté du tableau, le fichier ouvre un formulaire. Je voulais que dans ce formulaire on puisse sélectionner le type de fruit avec une ComboBox et récupérer les données de chaque variété de ce fruit dans une ListBox adjacente. Après quelques galères j'ai réussi à faire marcher le code de cette façon.
Il reste un dernier petit problème que je n'arrive pas à résoudre. Dans ma ListBox j'aimerais pouvoir nommer mes Headers dans les 4 colonnes pour plus d'ésthétisme et de facilité de lecture. Mais j'ai pas trouvé la solution. De ce que j'ai compris on ne peut le faire qu'avec la propriété RowSource mais en l'essayant le logiciel me renvoie le message "Propriété ou méthode non gérée par cet objet".
J'utilise pourtant la partie Initialiser du UserForm.
Voici mon code
Des idées? C'est peut-être simple mais je suis débutant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Private Sub ComboBox1_Change() Dim k As Integer ListBox1.Clear For k = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row If ComboBox1.Value = Sheets("Feuil1").Range("A" & k).Value Then ListBox1.AddItem Sheets("Feuil1").Range("A" & k).Value ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Sheets("Feuil1").Range("B" & k).Value ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Sheets("Feuil1").Range("C" & k).Value ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Sheets("Feuil1").Range("D" & k).Value End If Next k End Sub Private Sub UserForm_Initialize() Dim i As Integer, TV As Variant 'Initialisation de la ComboBox For i = 2 To Sheets("Feuil1").Range("A65536").End(xlUp).Row ComboBox1 = Sheets("Feuil1").Range("A" & i) 'Supprimer les doublons If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem (Sheets("Feuil1").Range("A" & i)) Next i ComboBox1.Value = "" TV = Sheets("Feuil1").Range("A1").CurrentRegion Me.ListBox1.ColumnCount = 5 Me.ListBox1.ColumnHeads = True Me.ListBox1.List = TV End Sub
Pardon d'avance pour le dérangement et merci ^^
Partager