Dim tw As MSComctlLib.TreeView
Dim Tbl, n
Private Sub UserForm_Initialize()
Tbl = Range("A2:N" & [N65000].End(xlUp).Row).Value
pere = "0"
nomPere = Application.VLookup(pere, Tbl, 4, False)
Set tw = Me.MonArbre
n = UBound(Tbl)
tw.Nodes.Add(, , "NoeudMat" & pere, nomPere).Expanded = True ' Racine arbre
Fils pere
End Sub
Sub Fils(parent) ' procédure récursive
For i = 2 To n
cd = Tbl(i, 1)
niv = Len(cd) - Len(Replace(cd, ".", ""))
If niv = 0 Then temp = "0" Else temp = Left(cd, Len(cd) - 2)
If temp = parent Then
tw.Nodes.Add("NoeudMat" & parent, tvwChild, "NoeudMat" & _
Tbl(i, 1), Tbl(i, 1) & ": " & Tbl(i, 2) & "-" & Tbl(i, 4)).Expanded = True
Fils Tbl(i, 1)
End If
Next i
End Sub