Dim tw, Tbl(), n
Sub Initialise()
Tbl = Range("A2:E" & [A65000].End(xlUp).Row).Value
pere = Tbl(1, 1)
Set tw = Sheets(1).TreeView1
Sheets(1).TreeView1.Nodes.Clear
n = UBound(Tbl)
tw.Nodes.Add(, , "NoeudMat" & pere, Tbl(1, 1)).Expanded = True ' Racine arbre
Fils pere, 1
End Sub
Sub Fils(parent, niv) ' procédure récursive
For i = 2 To n
cd = Tbl(i, 2)
If cd = parent Then
tw.Nodes.Add("NoeudMat" & parent, tvwChild, "NoeudMat" & Tbl(i, 1), Tbl(i, 1)).Expanded = False 'True
Fils Tbl(i, 1), niv + 1
End If
Next i
End Sub