|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Ingénieur qualité méthodes Inscription : octobre 2011 Messages : 10 ![]() |
Bonjour,
Je suis plutôt novice en VBA et je travaille sur un projet de base de données de nomenclature dans ma société. Je n'arrive pas à générer de façon bouclé une liste de toutes les références d'assemblages "parents" d'un composant. Je m'explique : un composant peut être présent dans plusieurs assemblages parents directs et chacun de ces assemblages peut aussi être composer d'assemblages parents et ainsi de suite. La référence de l'assemblage "maître" est 9000001, c'est le système en entier, donc le dernier niveau. Je souhaiterai générer une sorte de matrice qui par niveau (ligne) me met les références parents à la suite. J'ai fait un exemple sur la deuxième feuille du tableur joint. Ma base de données est composée d'uniquement 2 colonnes, la première concerne les références enfants (niveau n) et la seconde les références parents (niveau n+1). La macro fera des va et vient entre ces deux colonnes pour trouver les valeurs. J'ai essayé avec des boucles "while" et des commandes "find" sans arriver au résultat escompté... Je sollicite donc l'aide du forum! Je ne sais pas si j'ai été très clair... Merci beaucoup d'avance pour toute aide de votre part. Rico Matrice des assemblages parents.xls |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Bonjour,
Malgré ton fichier, la logique n'est pas limpide Pourquoi met ton 9000006 et 9000005 au même niveau ? 9000003 ne devrait il pas être aussi sur ce niveau?
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Ingénieur qualité méthodes Inscription : octobre 2011 Messages : 10 ![]() |
Bonjour,
Tout d'abord merci de l'attention que vous portez à mon problème. Effectivement je ne suis pas assez clair sur le raisonnement. La liste que je souhaite générer ici (équivalent à ce qu'il y a dans la feuille "MatriceNiveaux") est la liste de tous les assemblages parents de 9000022, or les assemblages parents directs sont 9000005, 9000006 et 9000004. Ces 3 assemblages sont donc sur le même niveau et ont aussi chacun des assemblages parents qui seront sur le niveau plus haut (9000012,9000007,9000001). Je veux faire une boucle qui s'arrête uniquement lorsque 9000001 est atteint. Merci pour l'aide! Rico |
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Ca me semble bon, a toi de confirmer
Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Ingénieur qualité méthodes Inscription : octobre 2011 Messages : 10 ![]() |
C'est exactement ce que je cherchais mais à un détail près: je souhaiterais générer cette matrice uniquement pour les références ayant une filiation avec le composant pour lequel on fait la requête (ici 9000022).
C'est à dire que dans la matrice que me génère votre code ne devraient pas apparaître les références: 5200001.6.G, 9000003, 9000025 et 900002. Voyez vous un moyen simple pour faire ce filtre? Merci beaucoup pour votre réactivité et votre performance. |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Et comment on fait pour savoir que la référence 9000025 ne fait pas partie de 9000022 lorsqu'on est dans la boucle ?
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Ingénieur qualité méthodes Inscription : octobre 2011 Messages : 10 ![]() |
Et c'est là une grande partie de mon problème, j'ai essayé de traiter cela en faisant des commandes "find" qui cherchent les premiers parents d'une référence (9000022) dans la première colonne et qui cherchent ensuite les leurs dans cette même colonne et etc. Ainsi les références n'ayant pas de lien de parenté avec 9000022 ne sont pas pris en compte.
Cependant le code que vous m'avez fourni m'offre une autre fonction que je n'avais pensé à développer, et tout aussi intéressante, qui est de faire le mapping intégral de mon système par niveau. Merci encore. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com