Dim niveau As Long Dim Level As Long Dim nb As Long Dim nod1 As Node Dim nod2 As Node Dim Str As String Private Sub Form_Load() TV.Nodes.Add , , "Root1", "Root1" TV.Nodes.Add , , "Root2", "Root2" Set nod1 = TV.Nodes.Add("Root1", tvwChild, "Fils1-1", "Fils1-1") nod1.EnsureVisible Set nod1 = TV.Nodes.Add("Root1", tvwChild, "Fils1-2", "Fils1-2") nod1.EnsureVisible Set nod1 = TV.Nodes.Add("Root2", tvwChild, "Fils2-1", "Fils2-1") nod1.EnsureVisible Set nod1 = TV.Nodes.Add("Fils1-1", tvwChild, "Fils1-1-1", "Fils1-1-1") nod1.EnsureVisible Set nod1 = TV.Nodes.Add("Fils1-1", tvwChild, "Fils1-1-2", "Fils1-1-2") nod1.EnsureVisible End Sub Private Sub Command1_Click() niveau = 5 ' à partir du premier noeud ou pas ? FirstNode Level niveau: nb 0 ' choix du sélectionné ? '(ou celui séléctionné par Firstnode si fait avant) Gener TV.SelectedItem, Level End Sub Private Sub FirstNode() Set nod1 = TV.SelectedItem Do While (nod1 Is Nothing) = False Set nod2 = nod1 Set nod1 = nod1.Parent Loop ' on remonte au premier ou au tout premier ? ' Set nod1 = nod2 Set nod1 = nod2.FirstSibling nod1.Selected = True TV.SetFocus End Sub Private Sub Gener(n As Node, Level As Long) Dim i As Integer If Level > 0 Then n.EnsureVisible For i = 1 To n.Children Gener n.Child, Level - 1 Next If nb = 0 Then 'ici je crée les noeuds et sous-noeuds à ma façon 'je suppose que tu vas les créer à partir d'un Tableau ? nb = 1 Set nod1 = n For i = 1 To Level - 1 Str = nod1.Text & "-1" Set nod2 = TV.Nodes.Add(nod1.Key, tvwChild, Str, Str) nod2.EnsureVisible Set nod1 = nod2 Next End If If Level 1 Then n.Expanded False End If ' on s'arrête à la racine ou pas ? ' If Level = niveau Then Exit Sub If Not n.Next Is Nothing Then nb = 0 Gener n.Next, Level End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question