Option Explicit
Dim WithEvents CL As ComboBoxLiés
Dim TLgn() As Long
Private Sub UserForm_Initialize()
Set CL = New ComboBoxLiés
CL.CorrespRequise = True
CL.Plage Feuil3.Rows(3)
CL.Add Me.ComboBox1, "F"
CL.Add Me.ComboBox2, "E"
CL.Add Me.ComboBox3, "N"
CL.Add Me.ComboBox4, "G"
CL.Add Me.ComboBox5, "J"
CL.Add Me.ComboBox6, "M"
CL.Add Me.ComboBox7, "H"
CL.Add Me.ComboBox8, "K"
CL.Actualiser
End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 0 Then LbxSélect.Clear: ReDim TLgn(0 To 0): CommandButton1.Enabled = False
End Sub
Private Sub CL_Résultat(Lignes() As Long)
Dim Te(), Le&, Ts(), Ls&, C&
TLgn = Lignes
Te = CL.PlgTablo.Resize(, 15).Value
ReDim Ts(0 To UBound(TLgn) - 1, 0 To 14)
For Ls = 0 To UBound(Ts, 1)
Le = Lignes(Ls + 1)
For C = 0 To UBound(Ts, 2)
Ts(Ls, C) = Te(Le, C + 1)
Next C, Ls
Me.LbxSélect.List = Ts
CommandButton1.Enabled = False
End Sub
Private Sub LbxSélect_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim N&
For N = 0 To LbxSélect.ListCount - 1
If LbxSélect.Selected(N) Then CommandButton1.Enabled = True: Exit Sub
Next N: CommandButton1.Enabled = False
End Sub
Private Sub CommandButton1_Click()
Dim Te(), Le&, Ts(), Ls&, C&, N&, Cible As Range
Te = CL.PlgTablo.Resize(, 15).Value
ReDim Ts(1 To 500, 1 To 15)
For N = 0 To LbxSélect.ListCount - 1
If LbxSélect.Selected(N) Then
Le = TLgn(N + 1): Ls = Ls + 1
For C = 1 To 15: Ts(Ls, C) = Te(Le, C): Next C
End If: Next N
Set Cible = PlgUti(Feuil1.[A1])
Cible.Offset(Cible.Rows.Count).Resize(Ls, 15).Value = Ts
End Sub