Bonjour à tous,
La question est en fait dans le titre : existe t-il une méthode ou propriété qui permette de classer les noeuds d'une treeview dans l'ordre alphabétique ou faut-il que je crée moi même la procédure ?
Merci d'avance.
A+
Version imprimable
Bonjour à tous,
La question est en fait dans le titre : existe t-il une méthode ou propriété qui permette de classer les noeuds d'une treeview dans l'ordre alphabétique ou faut-il que je crée moi même la procédure ?
Merci d'avance.
A+
bonjour
les noeuds possedent une propriété de tri (Sorted)
tu peux specifier le tri lors de la creation de chaque noeud
par exemple
Code:
1
2
3
4 Dim Nd As Node Set Nd = _ TreeView1.Nodes.Add(, , "maClé", "Le texte", "Image1", "Image2") Nd.Sorted = True
bonne journée
michel
Bonjour,
En fait les données du problèmes ont quelques peu changé.
Le texte de mes noeuds sont constitués comme ceci :
Le but est de classer mes noeuds pas ordre décroissant.Noeud1 20 € Noeud2 30 €...
J'ai un fichier excel ou sont rangées mes données.
Je parcours ligne par ligne et dès que je tombe sur un noeud que je dois insérer, je compare dans ma treeview noeud par noeud leur valeur et dès que je trouve, je l'insère. Ca va donc donner :
Par contre mon problème est que quand je reparcours mon noeud au lieu de commencer à Noeud2, il commence à Noeud1. En effet, je faisNoeud2 30 € Noeud1 20 €...
ALors quelle est la bonne méthode pour résoudre mon problème.Code:
1
2
3 For i =1 to Tree.Nodes.Count ..... Next
Quelqu'un n'aurait pas une idée ?
Est ce que j'utilise la mauvaise propriété ?
Merci d'avance pour vos réponses.
A+
dans ce cas , tu devrais préalablement trier toutes tes données et ensuite alimenter le TreeView
bonne soiree
michel
Bonjour,
C'est à dire, les trier d'abord dans un tableau ?
oui c'est cela
bonne journée
michel
Merci pour tout.
A+
Si vous voulez trier les éléments sous le nœud sélectionné :
Si vous voulez trier l'ensemble de l'arbre, il faudra le parcourir ...Code:TreeView1.Nodes(TreeView1.SelectedItem.Key).Sorted = True
Code:For Each Noeud In TreeView1.Nodes ...
Bonsoir,
Exemple avec TreeView hiérarchique
La BD est triée dans l'ordre pere+fils (sauf la racine)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Sub UserForm_Initialize() Tbl = Range("A2:E" & [A65000].End(xlUp).Row).Value pere = Tbl(1, 1) Set tw = Me.MonArbre n = UBound(Tbl) tw.Nodes.Add(, , "NoeudMat" & pere, Tbl(1, 3)).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 = True Fils Tbl(i, 1), niv + 1 End If Next i End Sub Private Sub MonArbre_NodeClick(ByVal Node As MSComctlLib.Node) If Left(Node.Key, 8) = "NoeudMat" Then Me.Nom = Application.VLookup(Mid(Node.Key, 9), Tbl, 1, False) Me.Sup = Application.VLookup(Mid(Node.Key, 9), Tbl, 2, False) Me.Service = Application.VLookup(Mid(Node.Key, 9), Tbl, 3, False) Me.Cmt = Application.VLookup(Mid(Node.Key, 9), Tbl, 4, False) tmp = Application.VLookup(Mid(Node.Key, 9), Tbl, 5, False) If tmp <> "" Then Me.Image1.Picture = LoadPicture("c:\photos\" & tmp & ".jpg") Else Me.Image1.Picture = LoadPicture End If End If End Sub
Boisgontier
http://boisgontierjacques.free.fr