VB Excel / Treeview / Pb affichage texte

cs_Trepel Messages postés 3 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 6 juillet 2006 - 27 juin 2006 à 16:24
cs_Trepel Messages postés 3 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 6 juillet 2006 - 6 juil. 2006 à 16:48
Bonjour,

J'emploie un contrôle treeview dans une feuille excel.
N'y connaissant rien en la matière et la bête est plutôt corriace, j'ai cherché et trouvé plusieurs sources ou explications à ce sujet. Merci aux développeurs.

Seul un problème subsiste : le contrôle Treeview affiche les branches, les plus et les moins mais  n'affiche pas le texte associé au noeud !!

J'utilise Excel2000 ; le contrôle est Microsoft Treeview Control, version 6.0
J'ai tenté plusieurs codes, de redimensionner la police, rien n'y fait
J'ai songé à la couleur de la police (blanc sur blanc ca serait ballot) mais pas moyen de la changer, elle semble noire, selon le panneau Font

Le code employé est :
Set Noeud = Trv1.Nodes.Add(Trv1.SelectedItem.Index, tvwChild, sKey, "Child")
Noeud.EnsureVisible

sKey est défini par une function ad hoc.

Quelqu'un a-t-il une idée pour afficher le texte associé au noeud ?

Merci

 Trepel 

4 réponses

cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
28 juin 2006 à 14:07
création d'un noeud "mère 01" (niveau 1)
Set neu = Me.TreeView1.Nodes.Add(, , "k01", "mère 01")

création d'un noeud "fille 01" lié à "mère 01" (niveau 2)
Set neu = Me.TreeView1.Nodes.Add("k01", tvwChild, "k0101","fille 01")

j'utilise comme clé "kxxyy" pour repérer mes noeud ce qui permet de s'y retrouver facilement.

dans cet exemple, j'affiche des éléments d'un recordset (rs) dont les champs ont les propriétés suivantes:
 - libelle : le texte
 - code : c'est une chaine qui correspond à la clé et qui a pour forme XXYYZZ
avec XX le code de la mère de niveau 1, YY, le code de la fille de niveau 2 et ZZ le code de la petite-fille de niveau 3

    Do Until rs.EOF
        code = Trim(rs!code)
        libl = Trim(rs!libelle)
        ordre = Len(code) / 2
        If ordre = 1 Then
            Set neu = Me.TreeView1.Nodes.Add(, , "k" & code, libl)
        Else
            Set neu = Me.TreeView1.Nodes.Add("k" & Left(code, ordre * 2 - 2), tvwChild, "k" & code, libl)
        End If
        rs.MoveNext
    Loop
0
cs_Trepel Messages postés 3 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 6 juillet 2006
3 juil. 2006 à 14:24
Merci bipou,

Mon problème concerne principalement l'affichage du texte associé au noeud sous Excel2000. Aurais-tu une idée là dessus ?







 Trepel 
0
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
3 juil. 2006 à 18:46
Tout ce que je peux te dire c'est que le treeview que j'utilise est fournit dans la bibliothèque MSCOMCTL.OCX est que le texte (dans l'exemple) est la variable "libl"
0
cs_Trepel Messages postés 3 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 6 juillet 2006
6 juil. 2006 à 16:48
Merci bipou, tu es le seul à tenter de m'aider :)

J'ai trouvé  la solution !! bon ok, par lâcheté... :S

En fait j'ai abandonné mes recherches en laissant le fichier "Classeur1.xls" sur le bureau et puis là j'ai fait du ménage sur le bureau et je me suis dit qu'est-ce qu'il y a dans ce beau fichier excel au nom peu évocateur...Oh surprise le contrôle Treeview affiche le texte des noeuds !! En fait il fallait tout simplement sauvegarder le fichier, quitter excel puis ré-ouvrir le fichier à nouveau.

Une fois encore ma célèbre citation se vérifie : le meilleur moyen de régler un problème est de ne pas s'en occuper !

 Trepel 
0
Rejoignez-nous