Afficher et masquer des lignes - VBA - Arborescence

MarcMad

XLDnaute Nouveau
Bonjour,

J'ai un ficher Excel me permettant d'afficher et de masquer des lignes en VBA suivant différentes cases à cocher.
J'aimerais créer une arborescence au lieu des case a cocher.

Voici la structure de l'arbre

1) Ensemble de murs

2) Isolation

3) Option murs
3.1) Vis SDS
3.2) Membrane
3.3) Contre-plaqué
3.4) Ancrage

4)Camurlat
4.1)Camurlat Murs
4.2)Camurlat Murs 2
4.3)Camurlat Plafonds

5) Feme de toit

6) Ensemble de placher
6.1) Vrac de plancher

7) Option Module

Voici mon fichier
 

Pièces jointes

  • Arbre.xlsm
    49.5 KB · Affichages: 30

fanch55

XLDnaute Barbatruc
A Tester ...

Nota:
Vous trouverez le rectangle arrondi ci-contre .
Ne pas supprimer celui-ci, il conditionne la position et l'affichage de l'userform
De plus si on ferme l'Usf par mégarde, on peut le relancer en cliquant sur ce rectangle
1597679486968.png
 

Pièces jointes

  • Copie de Arbre-1.xlsm
    55.9 KB · Affichages: 9

fanch55

XLDnaute Barbatruc
Fichier modifié.
Si vous ajoutez un onglet qui doit utiliser l'arborescence,
modifiez le code de l'Usf en y précisant ce nouvel onglet ( case "nom de l'onglet")
VB:
Sub Userform_Activate()

With TreeView1.Nodes
    .Clear
    Select Case ActiveSheet.Name
   
    Case "Estimation"
        .Add(Key:="N1", Text:="Ensemble de murs").Tag = "20:33"
        .Add(Key:="N2", Text:="Isolation").Tag = "34:40"
        .Add(Key:="N3", Text:="Options murs").Tag = "41:48"
            .Add("N3", tvwChild, "N3C1", Text:="Vis SDS").Tag = "42:42"
            .Add("N3", tvwChild, "N3C2", Text:="Membranes").Tag = "43:43"
            .Add("N3", tvwChild, "N3C3", Text:="Contre-Plaqué").Tag = "44:44"
            .Add("N3", tvwChild, "N3C4", Text:="Ancrages").Tag = "45:48"
        .Add(Key:="N4", Text:="Camurlat").Tag = "49:54"
            .Add("N4", tvwChild, "N4C1", Text:="Murs").Tag = "50:52"
            .Add("N4", tvwChild, "N4C2", Text:="Murs 2").Tag = "52:52"
            .Add("N4", tvwChild, "N4C3", Text:="Plafonds").Tag = "53:54"
        .Add(Key:="N5", Text:="Ferme de toit").Tag = "55:64"
        .Add(Key:="N6", Text:="Ensemble Plancher").Tag = "65:73"
            .Add("N6", tvwChild, "N6C1", Text:="Vrac Plancher").Tag = "70:73"
        .Add(Key:="N7", Text:="Option module").Tag = "74:79"
       
    Case "Autres"
        .Add(Key:="N1", Text:="Ensemble de murs").Tag = "20:33"
        .Add(Key:="N2", Text:="Isolation").Tag = "34:40"
        .Add(Key:="N3", Text:="Options murs").Tag = "41:48"
            .Add("N3", tvwChild, "N3C1", Text:="Vis SDS").Tag = "42:42"
            .Add("N3", tvwChild, "N3C2", Text:="Membranes").Tag = "43:43"
            .Add("N3", tvwChild, "N3C3", Text:="Contre-Plaqué").Tag = "44:44"
            .Add("N3", tvwChild, "N3C4", Text:="Ancrages").Tag = "45:48"
        .Add(Key:="N4", Text:="Camurlat").Tag = "49:54"
            .Add("N4", tvwChild, "N4C1", Text:="Murs").Tag = "50:52"
            .Add("N4", tvwChild, "N4C2", Text:="Murs 2").Tag = "52:52"
            .Add("N4", tvwChild, "N4C3", Text:="Plafonds").Tag = "53:54"
        .Add(Key:="N5", Text:="Ferme de toit").Tag = "55:64"
        .Add(Key:="N6", Text:="Ensemble Plancher").Tag = "65:73"
            .Add("N6", tvwChild, "N6C1", Text:="Vrac Plancher").Tag = "70:73"
        .Add(Key:="N7", Text:="Option module").Tag = "74:79"
    End Select
End With
Text= texte à afficher
Tag= range de lignes à cacher/afficher
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
    Unload Usf_Tree
    Select Case Sh.Name
        Case "Estimation":     Usf_Tree.Show
        Case "Autres":         Usf_Tree.Show
    End Select
End Sub
Rajoutez le nom de l'onglet dans le Select.

Si vous n'avez pas créé le nouvel Onglet en dupliquant l'onglet "Estimation", copiez le rectangle USF dans le nouvel Onglet .
 

Pièces jointes

  • Copie de Arbre-1.xlsm
    68.5 KB · Affichages: 7
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 152
Messages
2 085 798
Membres
102 980
dernier inscrit
brossadan