Comment créer une arborescence sous Excel

  • Initiateur de la discussion Loic
  • Date de début
L

Loic

Guest
Bonjour,

J'auraio voulu savoir si quelqu'un savait comment créer une arborescence sous Excel. Je m'explique: J'ai une liste de tâche ayant des sous-tâches. Je voudrai faire apparaitre ou disparaitre ces sous-tâches en cliquant sur les tâches.... un peu comme pour les arborescences de 'explorateur Window !!

Merci d'avance à ceux qui pourront me sauver ...

Loic
 

MichelXld

XLDnaute Barbatruc
bonjour Loic

j'espere que ce lien pourra t'aider




bon apres midi
MichelXld
 
Dernière modification par un modérateur:

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

Waouh, michel, super boulot, et dire que j'ai failli rater ca.

comme j'ai quand meme bossé sur la problèmatique, je joins mon fichier (dans coup, sans savoir pourquoi, je me sens tout ridicule :eek: ).

Salut

Ps : je me suis arrété à deux embranchements, je sais plus faire après :)
[file name=Classeur2_20050615130706.zip size=12730]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur2_20050615130706.zip[/file]
 

Pièces jointes

  • Classeur2_20050615130706.zip
    12.4 KB · Affichages: 4 996

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comment créer une arborescence sous Excel

Bonjour,

Exemple d'arborescence avec procédure récursive:

Code:
Dim bdt, n, ligne
Sub vpersonnes(parent, niv)       ' procédure récursive
  ligne = ligne + 1
  Range("B16").Offset(ligne, niv) = parent
  Range("B16").Offset(ligne, niv).Borders(xlEdgeLeft).Weight = xlThin
  Range("B16").Offset(ligne, niv).Borders(xlEdgeBottom).Weight = xlThin

  For i = 1 To n
    If bdt(i, 2) = parent Then
       vpersonnes bdt(i, 1), niv + 1
    End If
  Next i
End Sub

Sub organigramme()
  Range("C17:M200").Clear
  ligne = 0
  n = Application.CountA(Range("a:a")) - 1
  bdt = Range("BD")
  vpersonnes Range("D2"), 1
End Sub


http://boisgontierjacques.free.fr/fichiers/jb-organigramme.xls

Exemple d'arborescence avec procédure récursive avec Treeview:

Code:
Dim tw As MSComctlLib.TreeView
Dim Base, n
Private Sub UserForm_Initialize()
  chef = [=MAX(IF(Pere="",Fils,0))]
  NomChef = Application.VLookup(chef, [BdPersonnel], 3)
  Set tw = Me.MonArbre
  n = [BdPersonnel].Rows.Count
  Base = [BdPersonnel]
  tw.Nodes.Add(, , "NoeudMat" & chef, NomChef).Expanded = True    ' Racine arbre
  vpersonnes chef
End Sub

Sub vpersonnes(parent)       ' procédure récursive
  For i = 1 To n
    If Base(i, 5) = parent Then
      tw.Nodes.Add("NoeudMat" & parent, tvwChild, "NoeudMat" & Base(i, 1), Base(i, 3)).Expanded = True
      vpersonnes Base(i, 1)
    End If
  Next i
End Sub

http://boisgontierjacques.free.fr/fichiers/jb-TreeViewExemples.zip

JB
Formation Excel VBA JB
 
Dernière édition:

Nowoday

XLDnaute Nouveau
Re : Comment créer une arborescence sous Excel

Bonjour,

je viens de récupérer le classeur proposé par BOISGONTIER. Je n'arrive pas à comprendre comment est déclarée "BdGénéalogie". Pourriez-vous m'expliquer comment cela fonctionne? Il faudrait que j'adapte ces feuilles à mes besoins.

Je vous remercie.
 

roulio64

XLDnaute Nouveau
Re : Comment créer une arborescence sous Excel

Bonjour,

Tous les liens sont morts, quel dommage.
J'ai fouillé un peu partout sur le forum et je n'ai pas trouvé de solution a mon problème.
J'ai une nomenclature de plusieurs milliers de lignes que j'exporte dans un fichier excel dont la colonne A contient le niveau hierarchique de nomenclature (1, 2, 3, 4 ect...)
Je souhaiterais créer automatiquement (via la fonction grouper) l'arborescence avec les niveaux. Dans le fichier joint, en feuille 1 la nomenclature brute exportée, dans la feuille ce que je souhaite obtenir de façon automatisée.

Merci d'avance pour votre aide.
 

Pièces jointes

  • nomenclature.zip
    26.3 KB · Affichages: 1 155
Dernière modification par un modérateur:

roulio64

XLDnaute Nouveau

titiborregan5

XLDnaute Accro
Re : Comment créer une arborescence sous Excel

Bonjour à tous,
comme le sujet est relancé je continue dessus...
Quelques questions sur la page donnée par Boisgontier
BOISGONTIER Re : Comment créer une arborescence sous Excel
--------------------------------------------------------------------------------
Bonjour,



JB
je souhaiterais avoir qq. précisions:
  • comment faire pour que les 2 points entre article et désignation ne s'affichent pas? Je ne me sers que "d'article" donc la séparation n'est pas obligatoire
  • comment faire pour que l'arborescence soit "fermée" à l'ouverture?
  • comment faire pour que la cellule prenne la valeur choisie dans l'arborescence?
-et enfin, comment faire pour que l'arborescence s'ouvre lorsqu'on click sur une cellule de la plage "F2:F65000"?

Peut-être que ce qui est mis à disposition par Boisgontier ne me correspond pas si j'ai "tant" de modifications à y apporter?

Je ne suis pas hyper calé sur les macros (grâce à ce forum je m'en sors un peu) et sur cette fonction treeview pas du tout :d

Merci à tous de votre aide...
Je vous fais un classeur neutre le plus rapidement possible (dans l'heure max) pour que vous y "voyiez" plus clair!!

Tibo

Edit: et voilà le fichier! J'ai mis un petit commentaire pour expliquer, ainsi qu'un imprim écran de l'arborescence faite avec la page de Boisgontier.

Merci à vous!
 

Pièces jointes

  • arborescence.xls
    40 KB · Affichages: 2 274
Dernière modification par un modérateur:

perle2nacre

XLDnaute Nouveau
Re : Comment créer une arborescence sous Excel

Bonjour,

BDGénéalogie est un nom de champ (Insertion/nom/définir)

BDGénéalogie =TreeGénéalogie!$A$4:$H$58

JB

Bonjour,
Je souhaite moi aussi créer une arboresence sous excel (2007) et j'arrive à l'adapter à mes besoins, mais je ne comprends pas comment est déclaré BDGénéalogie et TreeGénéalogie?
Pourriez vous m'éclairer? Merci d'avance et merci pr les exemples JB

J
 

Discussions similaires

Statistiques des forums

Discussions
312 187
Messages
2 086 024
Membres
103 097
dernier inscrit
Benduch