Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set f = Sheets("data")
If Not Intersect(Range("A2:A1000"), Target) Is Nothing And Target.Count = 1 Then
UserForm1.ComboBox1.List = f.Range("A3:B" & f.[A65000].End(xlUp).Row).Value
UserForm1.Show
End If
'-- niveau 2
If Not Intersect(Range("C2:C1000"), Target) Is Nothing And Target.Count = 1 Then
Tbl2 = f.Range("D3:E" & f.[D65000].End(xlUp).Row).Value
nom = Target.Offset(, -2)
n = f.Range(nom).Count
Tbl1 = f.Range(nom).Value
ReDim Tbl(1 To n, 1 To 2)
For i = 1 To n
For j = 1 To UBound(Tbl2)
If Tbl1(i, 1) = Tbl2(j, 1) Then Tbl(i, 1) = Tbl2(j, 1): Tbl(i, 2) = Tbl2(j, 2)
Next j
Next i
UserForm1.ComboBox1.List = Tbl
UserForm1.Show
End If
'--niveau 3
If Not Intersect(Range("E2:E1000"), Target) Is Nothing And Target.Count = 1 Then
Tbl2 = f.Range("G3:H" & f.[G65000].End(xlUp).Row).Value
nom = Target.Offset(, -2)
n = f.Range(nom).Count
Tbl1 = f.Range(nom).Value
ReDim Tbl(1 To n, 1 To 2)
For i = 1 To n
For j = 1 To UBound(Tbl2)
If Tbl1(i, 1) = Tbl2(j, 1) Then Tbl(i, 1) = Tbl2(j, 1): Tbl(i, 2) = Tbl2(j, 2)
Next j
Next i
UserForm1.ComboBox1.List = Tbl
UserForm1.Show
End If
End Sub