Dim Wks As Workbook, Twb As Workbook, ShS As Worksheet, Sh As Worksheet, _
fichier$, dico As Object, i&, Tbl, rw
Private Sub UserForm_Initialize()
fichier = ThisWorkbook.Path & "\BD_SOURCE.xlsx"
Set Wks = Workbooks.Open(fichier)
Windows("BD_SOURCE.xlsx").Visible = False
Set ShS = Wks.Sheets("SOURCE")
Set Twb = ThisWorkbook
Set Sh = Twb.Sheets("SOURCE")
Tbl = Sh.UsedRange
Set dico = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Tbl)
tablo = Tbl(i, 1)
dico(tablo) = tablo
Next i
ComboBox1.List = dico.Items
End Sub
Private Sub ComboBox1_Change()
If ComboBox1 <> "" Then cmb1
End Sub
Private Sub ComboBox2_Change()
If ComboBox2 <> "" Then cmb2
End Sub
Private Sub ComboBox3_Change()
If ComboBox3 <> "" Then cmb3
End Sub
Private Sub cmb1()
Tbl = Sh.UsedRange
ComboBox2.Clear
For i = 2 To UBound(Tbl)
If Left(Tbl(i, 1), 4) = Left(ComboBox1, 4) Then ComboBox2.AddItem Tbl(i, 2)
Next i
End Sub
Private Sub cmb2()
Tbl = Sh.UsedRange
ComboBox3.Clear
rw = Application.Match(ComboBox2, Sh.Columns(2), 0)
ComboBox3.AddItem Sh.Cells(rw, 3)
End Sub
Private Sub cmb3()
ComboBox4.Clear
rw = Application.Match(ComboBox3, Sh.Columns(3), 0)
ComboBox4.AddItem Sh.Cells(rw, 4)
End Sub
Private Sub CmdSave_Click()
Dim lig&, ShD As Worksheet
Set ShD = Twb.Sheets("DESTINATION")
With ShD
lig = .Range("a" & Rows.Count).End(3).Row + 1
.Cells(lig, 1) = ComboBox1
.Cells(lig, 2) = ComboBox2
.Cells(lig, 3) = ComboBox3
.Cells(lig, 4) = ComboBox4
End With
For i = 1 To 4
Controls("Combobox" & i) = ""
Next i
End Sub
Private Sub CmdFermer_Click()
Windows("BD_SOURCE.xlsx").Close True
Unload Me
End Sub