Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide Treeview arborescence

  • Initiateur de la discussion Initiateur de la discussion josef140
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

josef140

Guest
Bonjour,
j'ai un problème avec un arborescence Treeview je ne sais pas comment faire pour que ça soit cohérent s'ils vous plaît si quelqu'un connaît les treeview ça sera très sympa de sa part s'il peut regarder mon programme.
merci d'avance
ci joint le fichier excel Regarde la pièce jointe newrfp1.xlsm
 
Re : Aide Treeview arborescence

Bonjour josef140, le fil, le forum,
40 visites, un fichier exemple, un bonjour et pourtant pas de réponse. Ce n'est pas habituel, je me suis donc penché sur le cas pour savoir pourquoi.

Je n'avais jamais utilisé de Treeview, la méthode employée est donc toute personnelle 😀...
En rangeant et classant l'arborescence on comprend mieux le défaut.
J'ai ajouté et modifié des lignes dans ton exemple (j'ai aussis supprimé tout ce qui ne servait à rien , feuille, module, usf...)
Pour 18 lignes à traiter on obtient 87 clés uniques (une paille...)
Comment retrouver les informations à présenter dans la partie droite de ton UserForm ? C'est là que le bât blesse.
Je laisse le résultat, mais je pense qu'un autre fil sera nécessaire pour retrouver les valeurs à renvoyer.
Le code principal en dessous, le tri_JB est celui de J.Boisgontier.

VB:
Private Sub UserForm_Initialize()
Dim K As String, P As String, i As Long, J As Long
Set Dico = CreateObject("Scripting.dictionary")
With Sheets("BDD")
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        K = "Racine"
        For J = 1 To 8
            K = K & ";" & .Cells(i, J).Value
            Dico(K) = i
        Next J
    Next i
End With

T = Dico.Keys
Call tri_JB(T, LBound(T), UBound(T))

With MonArbre
    .Nodes.Clear
    .Nodes.Add(, , "Racine", Cells(1, 1)).Expanded = True
    For i = LBound(T) To UBound(T)
        Tmp = Split(T(i), ";")
        .Nodes.Add(Left(T(i), Len(T(i)) - Len(Tmp(UBound(Tmp))) - 1), tvwChild, T(i), Tmp(UBound(Tmp))).Expanded = True
    Next i
End With
End Sub

Si quelqu'un vois mieux, je suis preneur

Cordialement
 

Pièces jointes

Dernière édition:
Re : Aide Treeview arborescence

Bonjour Efgé
Tout d'abord merci beaucoup pour ton aide précieuse, pour la partie à renvoyer en faite tu as inversé la colonne fournisseurs et pièces sinon ça marche très bien pour moi, j'ai juste une question stp jusqu'à combien le programme peut-il être fonctionnel autrement dit est ce que le treeview pourra supporter par exemple 5000 pièces plus ou moins ?
Merci cdlt.
 
Re : Aide Treeview arborescence

Bonjour josef140,
je viens de tester avec 10 000 références. Ca fonctionne sous 2007, c'est long, très long, mais ça fonctionne.

Par contre je serais intéressé par la méthode que tu vas employer pour renvoyer les bonnes infos dans la partie droite du UserForm...
Cordialement
 
Re : Aide Treeview arborescence

Bonjour Efgé,
j'ai juste remplacé
Code:
If not Node.Parent Is Nothing Then
par
Code:
If Node.Child Is Nothing Then
et ça renvoie les données exactes voilà merci
Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
375
Réponses
5
Affichages
558
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…