Forêt d'arborescences en VBA/Excel
Bonjour,
Mon projet consiste à décrire les filiations "intellectuelles" qui lient entre eux quelques centaines de compositeurs des XXe et XXIe siècles. La première étape (résolue avec Access) a consisté à dresser la liste des filiations "individuelles" fournissant une série de relations de type a > b (le signe > symbolisant ici le fait que le compositeur b est un disciple de a): soit a>b, c>d, e>f, etc. Il s'agit donc d'ordonner a, b, c, d, e, f en fonction de ces relations (sorte d'arbre généalogie). Je ne sais pas comment réaliser cet ordonnancement avec VBA pour Excel (si du moins c'est possible avec cet outil).
Naturellement un compositeur peut avoir été le maître de plusieurs autres, ce qui fait penser à un arbre n-aire. Par contre, difficulté supplémentaire par rapport aux exemples fournis dans la FAQ et les cours d'algorithmique: un compositeur peut être le disciple de plusieurs maîtres (comme si, en généalogie, un fils pouvait avoir plusieurs pères). Je pense à VBA_Excel parce que j'ai une petite expérience avec cet outil et que je sais exporter l'état Access contenant toutes mes relations a>b vers une feuille de tableur. Je sais aussi que les possibilités d'Excel en calcul et en représentation graphique (j'en souhaite aussi !) sont supérieures à celles d'Access (qu'en plus je connais très mal !). Est-ce que quelqu'un peut me fournir une piste ou m'orienter vers une application similaire stockée sur le web ?
J'ai beaucoup cherché et je remercie d'avance ceux qui me donneront un coup de main.
Cordialement.
Pierre
Forêt d'arborescence en VBA/Excel
Bonjour Patrick Toulon,
Je crois savoir que XML est un format de fichiers mais j'ignorais que c'était un langage de programmation :oops: ce qui veut dire que ton exemple de code (si c'est bien du code XML) est pour moi totalement obscur.
Organiser mes données dans des cellules me paraît compliqué te je pensais plutôt à une solution VBA mais peut-être qu'il n'y en a pas ?
En tout cas merci et belle journée.
Cordialement
Pierre
Forêt d'arborescence en VBA/Excel
Rebonjour,
Je m'y suis déjà attelé mais pour ma part je suis un senior (au sens usuel) ni expert ni distingué, je vais donc avoir besoin d'un peu d'aide.
Je suis parti dans la direction suivante: De mes paires de compositeurs, l'un maître, l'autre élève, je fais une inégalité du genre Fauré > Debussy (pas un jugement de valeur, bien entendu, le second fut un élève du premier); ensuite tous mes individus sont pourvus d'un indice en faisant, en pseudo code
si A > B alors indiceA = indiceA + 1 et indiceB = indiceB + 0 (ce qui est implicite).
Ensuite je les trie sur les indices, ce qui promet beaucoup d'ex-aequos. Tous ceux qui ont le même indice forment une "génération" et, grâce à un second indice, je trie les individus à l'intérieur de chaque génération (je ne vois pas encore sur quel critère, mais une chose à la fois).
Difficulté: parmi les ex-aequos, il y aura en outre des doublons (2 ou + compositeurs élèves du même maître - ce sera le cas avec Fauré, justement) et il faudrait pouvoir les fusionner. Mais si A a été l'élève de B puis de C qui était lui-même élève de B, A va appartenir à 2 générations ! Solution éventuelle: un arc (qu'est-ce que c'est en VBA ?) qui franchit une génération entre B et A et deux générations entre C et A.
Est-ce qu'à vue de nez c'est réalisable en VBA for Excel ?
Y a-t-il des chemins plus directs ?
Merci d'avance d'y consacrer un peu de temps.
Cordialement
Pierre
P.S. J'ai omis un fait qui pèse lourd: mes 431 profs-compositeurs ont (très souvent) été élèves-compositeurs des mêmes 431 personnages, mais pas réciproquement, bien sûr ! Concrètement, dans ma table Excel où les auteurs sont sur 2 colonnes, un grand nombre figurent dans les 2 colonnes, et même à plusieurs reprises !
Forêt d'arborescence en VBA/Excel
Merci dysorthographie et Menhir,
Les meilleurs volent à mon secours, super.
Je vais donc commencer par étudier du côté de Gant et du côté des classes (auxquelles je n'ai jamais compris grand-chose depuis le temps que je suis sur ce forum :oops:)
Avoir des tas de choses à découvrir, c'est idéal pour soutenir l'intérêt.
Merci encore, je donnerai des nouvelles.
Bon week end.
Cordialement
Pierre
Forêt d'arborescence en VB/Excel
Bonjour Dysorthographie, Menhir et Theze,
Merci à vous trois. Je vais vous répondre séparément dans cet ordre.
Citation:
Je pense qu'il faut envisager ta problématique comme des fiches cartonné!
Ca me semble tout à fait pertinent, merci, mais alors inutile d'exporter mes données d'Access dans Excel. Il vaut mieux continuer dans Access dont c'est la vocation, n'est-ce pas ?
J'ai potassé la "somme" d'Emmanuel Tissot sur les modules de classes et si j'ai bien compris, ils me permettraient de construire une série d'objets inconnus dans Excel ou Access, la classe compositeurs, que je pourrais doter des propriétés et des méthodes dont j'ai besoin pour mon arbre. C'est bien ça ?
Quant au Dictionary, il permettrait des opérations (tris, recherches) beaucoup plus rapides que si je mets mes fiches dans une collection.
Citation:
...on peut monter ou descendre dans la branche en suivant le fils de filiations de classes!
Là je vois moins clair. Comment faire apparaître ces liens dans un dictionary, c'est ce que je n'ai pas compris.
Citation:
Restera a définir ce que te feras de cette variable!
J'ai une idée précise de ce que je veux faire mais je ne vois pas du tout comment je m'y prendrai: ce que j'aimerais, c'est produire une représentation graphique de l'arbre (c'est pour ça que j'avais pensé à porter mes données dans Excel qui est meilleur en graphiques). Mais comme je m'aventure sur des terres inconnues (Access, les classes, les dictionary) je fais une chose après l'autre !
Citation:
...les dictionnary Maîtres et Élèves le fils conducteur de la filiation!
Là le souci est que pour la plupart les compositeurs sont à la fois Elèves et Maîtres; comment faire 2 dictionary distincts ?
Denier détail: dans ton post je ne sais pas toujours, quand tu écris fils, si je dois comprendre en anglais "son" ou "threads". Pourrais-tu préciser ?
Encore merci pour ta réponse et merci d'avance pour un complément d'information.
Pierre
Forêt d'arborescences en VBA/Excel
Bonjour Menhir et merci,
Diagrammes de Gantt, je ne connaissais pas sous ce nom mais quand j'ai trouvé ça sur le web je me suis rendu compte que j'en avais dessiné des dizaines pendant ma carrière: chaque fois que j'avais à réaliser un imprimé publicitaire faisant appel à une série de corps de métier, du concepteur-rédacteur au relieur ! Ils incluent la dimension temporelle, qui ne joue pas de rôle en tant que telle dans mon projet. Mais merci tout de même pour la suggestion. En plus j'ai appris que je faisais de la méthode PERT sans le savoir :mouarf:
Bonne journée
Cordialement
Pierre
Forêt d'arborescences en VBA/Excel
Bonjour et merci, Theze,
Que des experts de haut niveau autour du berceau de mon bébé !
C'est sympa de vouloir me simplifier la tâche:
Citation:
Si tu n'es pas trop à l'aise avec les Classes, tu as le type utilisateur (structure) qui pourrait t'aider.
mais en lisant ce week end l'article fouillé d'Emmanuel Tissot sur ce site je me suis rendu compte que ce n'était pas si sorcier que ça. Et puis ça ne fait pas de mal d'apprendre des choses nouvelles à 83 ans, j'y renoncerai quand je serai vieux;)
Merci tout de même; je vais mettre ton post de côté, il pourrait bien me rendre service un jour ou l'autre.
Cordialement
Pierre
Forêt d'arborescences en VBA/Excel
Bonjour Dysorthographie et merci,
Merci pour les détails informatiques que je tâcherai de mettre à profit, mais surtout pour Woelffl, que je ne m'attendais pas à rencontrer sur le site de DVP ! Jamais entendu parler jusqu'ici et, en lisant sa bio, je découvre qu'il a écrit une sonate pour flûte. Comme c'est mon instrument, je sens que je vais jouer du Woellfl grâce à un ingénieur en informatique croisé sur le web: excellente surprise.
Quant à mon projet, il porte seulement sur le XXème siècle (et fin du XIXème), où le monde musical entre en ébullition. Difficile de s'y retrouver ! n Du coup le lien Mozart-Woelffl n'y apparaîtra pas.
Encore merci et sans doute à bientôt (pas pour un concert, mais probablement pour la liaison classe/dictionary).
Bonne semaine
Pierre
Forêt d'arborescences en VBA/Excel
Bonjour dysorthographie,
Merci pour ces codes qui vont me faire gagner un max de temps (et de jus de cervelle).
A bientôt des nouvelles du chantier.
Cordialement
Pierre
Forêt d'arborescences en VBA/Excel
Bonsoir,
Belle démonstration mais je suis distancé. Coder en plaisantant, ou plaisanter en codant, c'est pas encore dans mes cordes, je suis un besogneux du VBA. Mais je te suis reconnaissant de tes propositions que je mettrai en oeuvre dès que je les aurai comprises :(
Ce samedi j'ignorais encore tout des modules de classe, donc patience. Mine de rien ma petite appli a l'air de t'amuser pas mal. Es-tu musicien ? Ouais, ça ne me regarde pas !
Encore merci et à bientôt
Cordialement
Pierre