XL 2019 fonction récursive remonter à la source du manquant nomenclature

ApprentieDranreb

XLDnaute Nouveau
Bonjour,
je suis nouveau dans le forum et je compte sur votre compréhension et votre aimabilité.
çela fait un petit moment que j'essaie de mettre en place une fonction récursive à intégrer à plusieurs niveau
c'est à dire mes champs sont dans les cellules
i = 14
G & i et L & i
variable1
tant que G & i <> L & i
variable1 = L & i
je viens chercher cette variable dans la colonne G & i
si je la trouve 1 résultat
' je créer un entête niveau 1.0
je copie ça correspondance de la colonne L & i dans une nouvelle cellule AD & i
' je créer un entête niveau 1.1
si je la trouve 2 résultats
je copie ça correspondance de la colonne L & i dans une nouvelle cellule AE & i
...........

sachant que le resultat lui meme peut avoir avec un père également et si c'est le cas

' je créer un entête niveau 2.0
je copie ça correspondance de la colonne L & i dans une nouvelle cellule A... & i cela dépend de combien de résultat j'ai trouver j'ai trouver.


MODELE TABLEAU DE BORD
Colonne GColonne LNiveau 1.01.11.22.03.03.1
AXXYZKLM
AY
AZK
ZKLM
KL
KM

j'espère être assez claire sinon n'hesitez pas à me demander plus d'explication
 

Dranreb

XLDnaute Barbatruc
Dans les données de votre dernier classeur on ne peut pas remonter à l'aïeul parce que l'élément 222 a deux pères, le 333 et le 111, et parce qu'il y a un dernier élément, le A111 qui est son propre père, ce qui entrainerait sa recherche dans une boucle interminable.
Mais on pourrait à la rigueur sortir la descendance de tous les éléments qui n'ont aucun père.
 

ApprentieDranreb

XLDnaute Nouveau
Bonjour Dranreb,
c'est exactement ce qu'il me fallait à un tout petit détail près.
je pense que ce développement servira à beaucoup de personne pour la partie composant composé ou père et fils.
- Véhiculer les informations liées à l'Aïeul à chaque fois dispose d'un fils.
- recopier le père ou le fils à chaque fois que celui à une descendance.
Exemple (voir fichier jouint).
 

Pièces jointes

  • thedarkness.elhitmy.xlsm
    45.9 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
Je joins déjà le classeur avec les améliorations dont j'avais parlé en message privé.

Est-ce que les libellés à reproduire en plus sont-ils bien intrinsèques aux éléments ?
 

Pièces jointes

  • thedarkness.elhitmy.xlsm
    41.1 KB · Affichages: 3

ApprentieDranreb

XLDnaute Nouveau
Pour plus de détail, lors de la copie de l'aïeul, il convient d'embarquer tous les champs concerné ( du champ aux champs 19), idem pour le Gen, l'aïeul peut avoir des informations différentes suivant sa position.
Un exemple qui Illustre exactement le besoin.
-Sachant que les données seront toujours présents dans la feuil1
-je souhaite affiché le résultat dans Feuil 2
 

Pièces jointes

  • Exemple_Concret.xlsx
    13.6 KB · Affichages: 4

Dranreb

XLDnaute Barbatruc
Non mais là c'est illisible je trouve.
Il vaudrait mieux une présentation comme je l'avais faite à un moment donné, avec les identifiants indentés, en colonne 1 pour chaque Ancêtre, en colonne 2 sur une nouvelle ligne pour chaque fils de 1ère génération etc., et toutes les informations associées à l'identifiant unique de chaque ligne aux mêmes colonnes bien plus loin …
Ou alors garder juste l'arborescence comme elle est, avec, très éventuellement juste un intitulé derrière chaque code d'élément, mais surtout la possibilité de consulter une base sur une autre feuille avec tous les détails juste en sélectionnant une cellule d'un code dans l'arborescence.
 
Dernière édition:

ApprentieDranreb

XLDnaute Nouveau
J'entends Dranreb. Cependant, dans ce scénario, si je modifie la position de l'Aïeul (actuellement en première position) et du Gen (actuellement en position 20), serait-il possible, lors de la création de l'arbre, de copier tous les champs liés à l'aïeul (de la position 2 à 19) ? En cas de Gen, pourrais-je copier tous les champs de la position 21 à 38 ? Cette opération est cruciale pour me permettre d'effectuer des tris multi-niveaux, des tableaux croisés dynamiques (TCD) ou des analyses statistiques à chaque niveau.
 

Dranreb

XLDnaute Barbatruc
Je pense qu'il faut séparer l'aspect liaisons de l'aspect détail des données.
Vous pouvez ajouter une propriété Ligne à l'objet Chose pour garder trace de la ligne où se trouve l'élément dans une base détaillée. Et pour sortir d'autres états vous pouvez toujours vous écrire une autre navigation dans les liens inspirée de la procédure ÉtablirChaîne du module MFiliations. Pour ma part je crois que je vais m'arrêter là.
 

Discussions similaires

Réponses
8
Affichages
440
Réponses
7
Affichages
327

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35