IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-EXcel] classement des noeuds d'une treeview dans l'ordre alphabétique


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut [VBA-EXcel] classement des noeuds d'une treeview dans l'ordre alphabétique
    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+

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    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

  3. #3
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Bonjour,

    En fait les données du problèmes ont quelques peu changé.
    Le texte de mes noeuds sont constitués comme ceci :
    Noeud1   20 €
    Noeud2   30 €...
    Le but est de classer mes noeuds pas ordre décroissant.
    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 :
    Noeud2   30 €
    Noeud1   20 €...
    Par contre mon problème est que quand je reparcours mon noeud au lieu de commencer à Noeud2, il commence à Noeud1. En effet, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i =1 to Tree.Nodes.Count
    .....
    Next
    ALors quelle est la bonne méthode pour résoudre mon problème.

    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+

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    dans ce cas , tu devrais préalablement trier toutes tes données et ensuite alimenter le TreeView


    bonne soiree
    michel

  5. #5
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Bonjour,

    C'est à dire, les trier d'abord dans un tableau ?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    oui c'est cela


    bonne journée
    michel

  7. #7
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Merci pour tout.

    A+

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Si vous voulez trier les éléments sous le nœud sélectionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       TreeView1.Nodes(TreeView1.SelectedItem.Key).Sorted = True
    Si vous voulez trier l'ensemble de l'arbre, il faudra le parcourir ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       For Each Noeud In TreeView1.Nodes ...

  9. #9
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Points : 2 156
    Points
    2 156
    Par défaut
    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
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA excel: Ajouter des zéros après une virgule
    Par kimai81 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/02/2008, 21h54
  2. VBA EXCEL : Concaténation des cellules d'une colonne
    Par kikaillo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/07/2007, 17h37
  3. Ajouter des noeuds fils à une treeview
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/10/2006, 19h04
  4. [VBA-Excel]Multiselection de Noeud d'un Treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/08/2006, 14h29
  5. Réponses: 7
    Dernier message: 11/08/2006, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo