Bonjour Pat, bonjour le forum,
Je me comprends pas que l'ordre du tableau soit différent de l'ordre de la Listbox2 ?!.... Tu te débrouilleras...
• Pour récupérer les lignes :
Private Sub cbx_travaux_Change()
Dim O As Worksheet
Dim TV As Variant
Dim K As Integer
Dim TL() As Variant
Me.ListBox2.Clear
Set O = Worksheets("repertoire l.d.c")
TV = O.Range("B7").CurrentRegion
K = 1
For I = 2 To UBound(TV, 1)
If TV(I, 1) = Me.cbx_travaux.Value Then
ReDim Preserve TL(1 To 5, 1 To K)
For L = 1 To 5
TL(L, K) = TV(I, L + 1)
Next L
K = K + 1
End If
Next I
If K > 1 Then Me.ListBox2.Column = TL
Me.cbx_pieces = Application.WorksheetFunction.VLookup(cbx_travaux, Sheets(4).Range("b7:g40"), 2, False)
End Sub
Pour passer d'une liste à l'autre :
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print Me.ListBox1.ListCount
With Me.ListBox2
For I = 0 To .ListCount - 1
If .Selected(I) = True Then
Me.ListBox1.AddItem
For J = 0 To 4
Me.ListBox1.Column(J, Me.ListBox1.ListCount - 1) = .Column(J, I)
Next J
End If
Next I
End With
End Sub