XL 2016 Affichage d'un arbre récursivité

xachaaa

XLDnaute Nouveau
Bonjour ,
s'il vous plait , je suis débutante en programmation vba et je souhaite réaliser la tache dans le fichier excel ci-dessous.
Si quelqu'un parmi vous peut m'aider.
PS:J'ai 10 Fonctions avec 5 options et je souhaite avoir toutes les combinaison possibles.
Mon exemple est seulement pour 5 fonctions et quelques options insérées.
Les options sont dynamiques (entre 0 et 5)et 10 fonctions.
Merci beaucoup.
 

Pièces jointes

  • Arbre de diversité.xlsx
    11.9 KB · Affichages: 23
Solution
Voici la V8.
Mettre des X pour les lignes exclues compliquera beaucoup les éventuels calculs sur les proba.
Donc j'ai mis ces cellules vides et en gris, donc aucun problème de calculs éventuels.
J'en ai profité pour rajouter pas mal de commentaires, pour vous aider à vous approprier l'outil. :)

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Xachaaa,
Trois petites remarques :
1- Votre problème est bien l'illustration de la récursivité.
2- C'est un sujet qui n'attire pas les foules, car toujours délicat à mettre au point.
3- Je suis un peu têtu.
En PJ un essai :
- Il supporte de 1 à 10 fonctions, et de 1 à 5 options.
- J'ai concaténé options et %, mais vous pourrez les séparer, c'est long, fastidieux et n'apporte aucune plus value.
- J'utilise deux macros récursives imbriquées.
- Tous les commentaires sont sur la page Data, et dans le code.
Je vous souhaite bon courage, il va vous falloir avaler ça pour le comprendre.
 

Pièces jointes

  • Recursivité(V3).xlsm
    116.2 KB · Affichages: 9

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Xachaaa,
Oui j'ai vu après coup. La double récursivité empile trop de fonctions et la pile finit par déborder.
J'ai trouvé une astuce pour résoudre le problème sans récursivité.
On peut le faire car on connait la dimension max du tableau d'entrée.
Je devrais pouvoir vous livrer ça aujourd'hui.
J'ai horreur de l'échec.:)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Xachaaa,
Le fichier précédent était limité en nombre de fonctions car les deux boucles de récursivité étaient entremêlées et explosée la pile.
comme dans votre exemple la matrice d'entrée est connue ( max 11*5 ) on peut passer par des algo plus simples.
En PJ un nouvel essai.
N'oubliez pas que le nombre de lignes générées est une factorielle du nombre d'options et que ça grimpe très vite.
J'ai mis une option qui supprime la mise en forme. car cette mise en forme est vraiment très chronophage. ( par ex 0.043s pour construire l'arbre, 2.3s pour une belle mise en forme )
 

Pièces jointes

  • Recursivité(V5).xlsm
    123.3 KB · Affichages: 3

xachaaa

XLDnaute Nouveau
Merci beaucoup . ça fonctionne à parfait ,
S'il vous plait est ce que je peux avoir un calcul de produit des pourcentages pour chaque ligne .
vous trouvez exemple de formule dans la feuille Tree ;
je veux l'appliquer sur tout le tableau . S'il vous plait
Merci beaucoup.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Xachaaa,
La V6 en PJ. Les modifs :
1- La dernière colonne est le produit des pourcentages, et ce pour toutes les lignes.
2- J'ai mis sous chaque fonction la somme des % de la colonne avec alerte si < ou > 100%
3- Jai mis une alerte si on dépasse la limite de lignes sur Excel car 1 953 125 lignes si toutes les fonctions, toutes les options sont utilisées. Or XL est limité à 1 048 576 lignes.
A tester.
 

Pièces jointes

  • Recursivité(V6).xlsm
    65.5 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Savez vous qu'aujourd'hui sur un CV scientifique ou technique, mettre "Connaissance d'Office" n'est pas nécessaire car implicite.
Vous vous orientez vers une carrière technique ou scientifique et la maîtrise d'XL et du VBA vous sera indispensable chaque jour pour des calculs, des analyses, des exploitations de BD ...
alors ne pas faire l'effort aujourd'hui vous pénalisera grandement demain.

Ceci étant dit, envoyez, j’essaierais de vous le faire, mais franchement ce n'est pas vous rendre service, mais ça m'amuse. :)
 

xachaaa

XLDnaute Nouveau
Pour vous décrire la tache que je souhaite avoir, après construction de l'arbre je souhaite ajouter des conditions dans chaque ligne de mon arbre .
par exemple , dans une ligne d'arbre on ne peut pas avoir B1 et D1 en même temps.
je veux avoir la possibilité d'insérer ses conditions .
SI option 1 ALORS PAS options 2
en PJ vous trouvez l'exemple , mais j'ai pas supprimé D1 de la première ligne de l'arbre.
 

Pièces jointes

  • Recursivité(V6).xlsm
    59.9 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Vraiment désolé. Là je jette l'éponge.
Ça fait reprendre tout à zéro. D'autant que les conditions devraient être programmable.
Vous n'avez aucun esprit de synthèse. Il eût été plus simple dès le départ d'énoncer l'ensemble des hypothèses de départ. Mais là tout ré écrire je n'en ai aucune envie.
Il faudrait faire une matrice des exclusions, reconstruire l'arbre en conséquence .....
C'est déjà énormément de boulot. Je préfère stopper là.
Il va vous falloir mettre les mains dans le cambouis. Vous pouvez le faire facilement en formules. Voir PJ.
Sorry.
 

Pièces jointes

  • Recursivité(V7).xlsm
    66 KB · Affichages: 4

Discussions similaires

Réponses
14
Affichages
1 K
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 117
dernier inscrit
augustin.morille