Construction d'un arbre d'appels [VBA-Excel] - VB/VBA/VBS - Programmation
Marsh Posté le 24-05-2007 à 10:52:00
2 solutions comme ca a cho :
1/
- un petit système récursif est pas mal
tu balances dans le tube ta valeur cherchée + la colonne où il figurera
ca donnera un truc du style
function recur(a,i) as integer qui te retourne le rang de ta "ChaineX"
2/
- tu listes les lignes dont la colonne A n'apparait dans aucune colonne B
=> rang 1
- tu listes les colonnes B de ces lignes
=> rang 2
- tu listes les lignes dont la colonne A est un rang 2, tu relèves les colonnes B
=> rang 3
- tu listes les lignes dont la colonne A est un rang 3, tu relèves les colonnes B
=> rang 4
etc.
Marsh Posté le 24-05-2007 à 10:16:15
Bonjour,
Je me retrouve face à un petit problème, j'espère que vous saurez m'indiquer une direction
Voici la feuille Excel que j'ai en entrée ( chaque chaine se trouve dans une cellule à partir de la A1 ) :
Chaine3 Chaine4
Chaine3 Chaine7
Chaine1 Chaine2
Chaine1 Chaine3
Chaine6 Chaine5
Chaine6 Chaine3
Chaine5 Chaine4
Chaine5 Chaine7
Chaine7 Chaine8
Chaine7 Chaine9
Et voici la feuille Excel que je dois obtenir en sortie ( partir de la cellule A1 toujours ) :
Chaine1 Chaine2
Chaine3 Chaine4
Chaine7 Chaine8
Chaine9
Chaine6 Chaine5 Chaine4
Chaine7 Chaine8
Chaine9
Chaine3 Chaine4
Chaine7 Chaine8
Chaine9
En gros, lorsqu'on parcourt les cellules de la première colonne, s'il s'avère que l'une d'entre elles se trouve aussi dans la seconde colonne, cela signifie que cette chaine est de second niveau, et doit donc être inscrite dans la colonne cible + 1, et non la colonne cible
J'ai pensé à un algorithme de ce type :
Pour chaque cellule de la première colonne
Chercher cette cellule dans la seconde colonne
Si trouvée
Alors cette celulle est de second niveau, donc on ne l'écrit pas encore
Si non trouvée
Alors écrire cette cellule dans la colonne cible de la seconde feuille
écrire sa celulle adjacente dans la colonne cible adjacente de la seconde feuille
FinSi
Passage à la cellule de la première colonne suivante
FinPour
Qu'est-ce que vous en pensez ? Avez-vous une idée du code ?
Je planche dessus depuis deux jours et j'avoue sécher complètement ...
Merci d'avance !
Message édité par fenx31 le 24-05-2007 à 12:05:49