Bonjour,
j'ai créé une listbox1 qui dépend d'une autre listbox2 et je souhaiterais qu'en cliquant sur l'objet voulu dans la listbox1 il me remplisse 3 listbox qui représente les caractéristique de mon objet listbox1.
Par exemple:
j'ai un tableau :
http://img827.imageshack.us/i/sanstitreac.jpg/ Uploaded with ImageShack.us
Dans ma listbox2 s'affiche (acte, famille, superfamille) quand je clique sur acte il affiche la liste des actes dans listbox1 et là je souhaiterais que dans la listbox3 il affiche les actes sélectionnés, dans listbox4 leur famille et dans listbox5 la superfamille.
Je vous copie le code car je peux pas joindre le fichier exemple même zipper ça prend trop de place.
j'ai créé une listbox1 qui dépend d'une autre listbox2 et je souhaiterais qu'en cliquant sur l'objet voulu dans la listbox1 il me remplisse 3 listbox qui représente les caractéristique de mon objet listbox1.
Par exemple:
j'ai un tableau :
http://img827.imageshack.us/i/sanstitreac.jpg/ Uploaded with ImageShack.us
Dans ma listbox2 s'affiche (acte, famille, superfamille) quand je clique sur acte il affiche la liste des actes dans listbox1 et là je souhaiterais que dans la listbox3 il affiche les actes sélectionnés, dans listbox4 leur famille et dans listbox5 la superfamille.
Je vous copie le code car je peux pas joindre le fichier exemple même zipper ça prend trop de place.
Code:
Option Explicit
Dim NomLBindex As Integer
Dim LRecherche As Integer
Private Sub UserForm_Initialize()
Dim L As Integer
Dim Plage As String
CommandButton1.Visible = False
L = Sheets("Feuil2").Range("B65536").End(xlUp).Row
Plage = Sheets("Feuil2").Range("B2:D" & L).Address
ListBox1.RowSource = "Feuil2!" & Plage
With Me
UpdateListBox .ListBox2, -1
End With
End Sub
Private Sub CommandButton1_Click()
ListBox3.Clear
Dim compt As Integer
For compt = 1 To (ListBox1.ListCount - 1)
If ListBox1.Selected(compt) = True Then
ListBox3.AddItem ListBox1.List(compt)
End If
Next compt
End Sub
Private Sub ListBox2_Change()
' Mise à jour des items dans la ListBox2 qui correspond a la catégorie choisi
UpdateListBox Me.ListBox1, Me.ListBox2.ListIndex
End Sub
Private Sub UpdateListBox(Parametres As MSForms.ListBox, IndexValue As Integer)
Dim LastInputRow As Integer, ColumnIndex As Integer, InputRange As Range
' Les données commencent à la ligne 3
Const FirstInputRow As Integer = 2
' Détermine depuis quelle colonne on prend la liste des items
ColumnIndex = IndexValue + 2
' Détermine la dernière ligne de la colonne sélectionnée et la plage correspondante
LastInputRow = Cells(FirstInputRow, ColumnIndex).End(xlDown).Row
Set InputRange = ActiveSheet.Range(Cells(FirstInputRow, ColumnIndex), Cells(LastInputRow, ColumnIndex))
With Parametres
.ColumnHeads = True ' Affiche les en-têtes de colonne
.RowSource = InputRange.Address ' Spécifie la source de données
.ListIndex = 0 ' Sélectionne le premier item
End With
Set InputRange = Nothing
End Sub
Private Sub ListBox1_Click()
CommandButton1.Visible = True
End Sub
Private Sub UserForm_Activate()
ListBox1.MultiSelect = fmMultiSelectExtended
End Sub