Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
763 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-Excel] Construction d'un arbre d'appels

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-Excel] Construction d'un arbre d'appels

n°1564430
fenx31
Posté le 24-05-2007 à 10:16:15  profilanswer
 

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  :ouch:  
 
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
mood
Publicité
Posté le 24-05-2007 à 10:16:15  profilanswer
 

n°1564446
jpcheck
Pioupiou
Posté le 24-05-2007 à 10:52:00  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-Excel] Construction d'un arbre d'appels

 

Sujets relatifs
[VBA / access] Effacer valeur zone de txt en fct valeur zone de listeProbleme avec un module VBA
planning sur excelC# créer DLL et l'utiliser sous Excel
Question sur les listbox vba excel[EXCEL] Menu déroulant et variable ?
Petit programme en VBA... besoin d´aide[EXCEL]identifier et ramener titre colonne from contenu cellule
[VBA] Valeur maximale d'une sélection(EXCEL) Somme en fonction du format ou de la police
Plus de sujets relatifs à : [VBA-Excel] Construction d'un arbre d'appels


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR