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 à 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part TreeView1.Nodes(TreeView1.SelectedItem.Key).Sorted = True
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager