Bonjour,
Je re-contextualise la situation dans laquelle je suis.
J'ai créé une base de données dans laquelle se trouve de nombreux produits (ex: 939BF1, 605KF2, A33TB....), pour chacun de ces produits ont a un ensemble de composants qui entrent dans la composition de ces produits (ex: 3SCAF0104A, 3SCAG0221A, 3SCAG0470A...)
Donc pour un produit, j'ai quelque chose comme ça dans ma base:
Pièce jointe 183125
Via une macro j'enregistre tous mes produits dans ma base, environ 400.. Une fois tous les produits enregistrés, j'utilise une requête qui va me calculer le nombre de composants en communs pour chacun des produits, et je créé une nouvelle table en conséquence qui ressemble à ça :
Pièce jointe 183126
Ainsi chaque produits est comparé avec les autres et je connais comme ça le nombre de composants qu'ils ont en communs.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ceci étant dit, à présent il faut consulter toutes ces infos facilement. J'ai donc créé un fichier excel dans le quel j'ai 2 tableaux croisés dynamiques, le premier tableau est le récapitulatif de la comparaison des produits entre eux. Il se présente sous cette forme:
Pièce jointe 183127
Le second TCD permet de savoir de quels composants est composé un produit, si le composant est utilisé dans la fabrication du produit alors il y a un "1", si il est utilisé deux fois dans sa fabrication un "2"...Il se présente sous cette forme:
Pièce jointe 183129
N.B.: j'ai créé une petite macro dans ce fichier me permettant de mettre à jour mes 2 TCD avec ma base de données, car en effet ce fichier et ma base sont liés..
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
C'est là que je fais appel à vos talent en tant qu'utilisateur d'excel, en effet à présent j'ai toutes mes données qui sont a peu prés en forme. Mais présenté brutalement comme ça, il est difficile pour un utilisateur lambda d'y comprendre quelque chose. J'ai donc créé un troisième ( et dernier) classeur, qui lui est voué à être utilisé par les utilisateurs. Ce classeur permet en fonction des produits qu'on lui donne d'effectuer la comparaison (en réalité il ne fait que lire mes TCD précédent ..) Et c'est ça qui me pose problème. Car dans mes TCD les infos concernant les comparaison son correcte mais lorsque mon troisième fichier les interroge, là on a des infos erronées... Je ne comprend pas pourquoi ..
Le troisième fichier se présente comme ça:
Pièce jointe 183137
Dans mon tableau de gauche, les valeurs calculées correspondent à "Nb composants", avec ce genre formule:
--> =SIERREUR(RECHERCHEV(C12;'Z:\[CalculDesCommuns.xlsm]MatriceComposition'!$1:$1048576;EQUIV("Total général";'Z:\[CalculDesCommuns.xlsm]MatriceComposition'!$2:$2;0);0);"")
Dans mon tableau de droite, les valeurs sont calculées avec ce genre formule:
--> =SIERREUR(INDEX('Z:\[CalculDesCommuns.xlsm]MatriceCommuns'!$B$3:$PY$442;EQUIV(K$11;'Z:\[CalculDesCommuns.xlsm]MatriceCommuns'!$B$2:$PY$2;0);EQUIV($G13;'Z:\[CalculDesCommuns.xlsm]MatriceCommuns'!$A$3:$A$442;0));"")
Ma requête est la suivante: J'aimerai qu'au niveau du fichier "utilisateur" je puisse interroger mes TCD à l'aide de formules robustes et fonctionnelles, il semblerait que les formules que j'utilise actuellement ne soit pas très bonne (raté, mauvaise valeur..). Le problème peut se situer au delà des formules je joint donc mes fichiers pour que vous puissiez y jeter un œil.
Ma base: http://www.cjoint.com/c/EGqhg76qX2M
Mon fichier de TCD: http://www.cjoint.com/c/EGqhgEkgirM
Mon fichier "utilisateur": http://www.cjoint.com/c/EGqhiMmpKGM
Merci d'avance, j'espère avoir été clair. Si non n'hésitez à me demander des précisions...
Partager