Parcours d'un TreeView

pinhut

XLDnaute Nouveau
Bonjour à tous !

Je débute dans ce langage depuis un peu moins de 3 semaines et j'avoue avoir besoin d'un petit coup de pouce!

voilà ce que je souhaite faire:

J'ai établi une hiérarchie de compteurs ( chaque compteurs peut posséder des sous compteurs, eux-mêmes pouvant posséder des sous compteurs et ainsi de suite...) à l'aide d'un TreeView.


Une fois la hiérarchie établie, je souhaite qu'une fonction me l'a recopie dans une feuille ( Feuil 2 ). Par exemple:

Imaginons un bâtiment avec 3 compteurs principaux

- Le premier possède 3 sous compteurs associés, chacun possédant encore un sous compteur associé

-Le deuxième possède 2 sous compteurs

-Le 3ème n'a rien en dessous de lui.

Je souhaite donc un affichage de ce type


Compteur 1
Sous compteurs 1.1
sous-sous compteurs 1.1.1
Sous compteurs 1.2
sous-sous compteurs 1.2.1
Sous compteurs 1.3
sous-sous compteurs 1.3.1


Compteur 2
Sous compteur 2.1
Sous compteur 2.2

Compteur 3



En définitif, je cherche une fonction qui parcours tous les noeuds enfants d'un noeud parent, le noeud parent dont on souhaite connaitre absolument tous ses "déscendents" serait passé en paramètre .J'ai donc procédé ainsi, Idx_Affichage étant une variable globale

Code:
Public Sub Parcourir_Enfants(ByVal Noeud_Parent As MSComctlLib.Node)
Dim Noeud_Enfant As Node
Dim Noeud_Suivant As Node



If Noeud_Parent.Children = 0 Then
    Idx_Remplissage = Idx_Remplissage + 1
    Worksheets("Feuil2").Cells(Idx_Remplissage, 1).Value = Noeud_Parent.Text
   
    
    If Noeud_Parent.Index <> Noeud_Parent.LastSibling.Index Then
    
        Set Noeud_Suivant = Noeud_Parent.Next
        
        Call Parcourir_Enfants(Noeud_Enfant)
        
    End If

End If


If Noeud_Parent.Children <> 0 Then
     Idx_Remplissage = Idx_Remplissage + 1
    Worksheets("Feuil2").Cells(Idx_Remplissage, 1).Value = Noeud_Parent.Text
   
    
    Set Noeud_Enfant = Noeud_Parent.Child
    Call Parcourir_Enfants(Noeud_Enfant)

End If




End Sub

Je comprends pourquoi cela ne marche pas mais je n'arrive pas à m'en sortir. Si il y à des cracks ici je veux bien un coup de main!

En vous remerciant !!!!!
 

pinhut

XLDnaute Nouveau
Re : Parcours d'un TreeView

Bonjour et merci pour ta réponse! Bien qu'un peu compliqués pour moi, tes exemples m'ont bien aidés à comprendre la mécanique !! Alors voilà ma petite fonction, si ça peut servir à quelqu'un, qui s'execute comme il faut

Code:
Public Sub Parcourir_Enfants(ByVal Noeud_Parent As MSComctlLib.Node)
Dim Noeud_Enfant As Node
Dim Noeud_Suivant As Node

Dim i As Integer


If Noeud_Parent.Children = 0 Then
    Idx_Remplissage = Idx_Remplissage + 1
    Worksheets("Comptage complet").Cells(Idx_Remplissage, 1).Value = Noeud_Parent.Text
 
End If


If Noeud_Parent.Children <> 0 Then
     Idx_Remplissage = Idx_Remplissage + 1
     Worksheets("Comptage complet").Cells(Idx_Remplissage, 1).Value = Noeud_Parent.Text
     
     
      Set Noeud_Enfant = Noeud_Parent.Child
      For i = 1 To Noeud_Parent.Children
      
        Call Parcourir_Enfants(Noeud_Enfant)
        Set Noeud_Enfant = Noeud_Enfant.Next
      Next i
End If

End Sub

Encore merci et peut-être à bientôt sur le forum !!!
 

Statistiques des forums

Discussions
312 370
Messages
2 087 691
Membres
103 641
dernier inscrit
anouarkecita2