Créer un "arbre" à partir d'1 base de données

sabdani Messages postés 26 Statut Membre -  
Heremion Messages postés 564 Statut Membre -
Bonjour,

Je viens de nouveau chercher un peu d'aide. J'ai une base de données dans laquelle ma colonne B contient des numéros, dont certains sont indépendants et d'autres sont liés. Je m'explique : les numéros de la colonne B sont en fait des identifiants d'échantillons. Ces échantillons peuvent être soit des échantillons d'origine soit des échantillons provenant d'autres échantillons déjà listés auparavant dans cette meme base de donnees. Si un echantillon provient d'un autre, le numero de l'echantillon précédent est listé dans une colonne. Ce que je voudrais faire est retrouver la "suite logique" de tous les échantillons que je possède pour un même échantillon d'origine, sachant que parfois, à partir d'un échantillon, plusieurs nouveaux échantillons sont crées. Petite illustration
Col A : ID Echantillon Col B : Echantillon d'origine Col C : Echantillon précédent
A B C
1 A
2 B
3 C
4 A 1
5 A 1
6 B 2
7 A 4
8 A 4
9 A 5

Je voudrais que pour l'échantillon A, excel me renvoie quelquechose comme

A 1 4 7
8
5 9

Je ne vois pas comment faire ça avec une formule donc je pense qu'il faut que je passe par une macro. Seulement je suis novice là dedans donc avant de me lancer dans ce casse tête j'aimerais déjà savoir s'il est possible d'obtenir ce résultat.
Merci d'avance

1 réponse

  1. Heremion Messages postés 564 Statut Membre 102
     
    Bonjour Sabdani,

    Dans une macro, par exemple sur le Worksheet.SelectionChange, tu peux mettre le code suivant :

    Dim imax, i
    
        imax = Range("A65536").End(xlUp).Row
        For i = 1 To imax
            If Cells(i, 1) = "A" Then
                Cells(1, 3).Value = Cells(1, 3).Value & " " & i
            End If
        Next i
    


    Ce code va regarder dans la colonne A, si la cellule contient la valeur "A" alors il met dans la cellule D1 la ligne où il l'a trouvé. En l'occurence, dans ton exemple, en D1, tu auras 1 4 5 7 8 9
    0