Nomenclature automatique

Bonjour,

Étant dans l'univers mécanique. J'ai besoin de faire une base de donnée d'équipements.

Celle ci permettrais de faire apparaitre les composants d'un équipement données.

Je suis partie donc sur une architecture de deux folio:

1 : La BDD où tous les composants de chaque équipement seront identifié par une quantité.

En abscisse : Les équipements (ensembles)

En ordonné : Le listing de tous les composants possibles

En cellule croisé de ces deux paramètres : La quantité du composant pour l'équipement donné (vide si nulle).

2 : La nomenclature résultante.

Règles :

  • Pour aspect pratique, la structure de la BDD ne doit pas être différente.
  • Le listing de la nomenclature doit être propre (sans composant à valeur nulle et sans lignes vides.
  • Macro et VBA non autorisés

J'ai essayé avec des INDEX, des EQUIV et des GRANDE.VALEUR / PETITE.VALEUR mais impossible d'arriver au resultat final..

Vous trouverez un fichier ci-joint pour une meilleur compréhension et pour proposition.

Merci d'avance pour votre aide,

AdrienS

Bonjour AdrienS,

Voyez si la solution proposée dans le fichier joint vous convient

Bonjour,

Pour l'aspect pratique c'est justement les composants que j'aurai mis en colonne en Fonction de

la ligne d'un Equipement.

Ensuite n'importe quel tableau croisé dynamique pourrait te ramener automatiquement n'importe quelle

statistique pour un équipement en particulier.

Bonjour AdrienS,

Voyez si la solution proposée dans le fichier joint vous convient

AdrienS-BDD Excel Pratique.xlsx

Merci beaucoup pour ta réponse, le résultat est exactement ce que je recherchais !

Cependant, si ça ne te dérange pas, j'aimerais que tu m'expliques la logique que tu as eut en développant les deux formules. (Ça intéresse ;P)

Merci encore et à bientôt.

AdrienS

BDD Excel Pratique (base inversée).xlsxBonjour,

Pour l'aspect pratique c'est justement les composants que j'aurai mis en colonne en Fonction de

la ligne d'un Equipement.

Ensuite n'importe quel tableau croisé dynamique pourrait te ramener automatiquement n'importe quelle

statistique pour un équipement en particulier.

Alors justement pour le coté de l'ordre du tableau, je préfère avoir les lignes de composants car je vais avoir beaucoup plus de composant que d'équipement et je préfère étendre mon tableau sur la hauteur plutôt que la largeur. De plus dance ce cas la, je peux filtrer par équipement.

Dans tout les cas, merci pour ton tableau croisé dynamique. Il fonctionne nickel aussi, cependant, vu que je ne suis pas du tout connaisseurs de ces bêtes là, les amélioration continues au fil du temps me font peur.

Mais je le garde quand même pour en apprendre davantage sur le sujet !

Merci encore et à bientôt !

AdrienS

Bonjour AdrienS,

Cependant, si ça ne te dérange pas, j'aimerais que tu m'expliques la logique que tu as eut en développant les deux formules. (Ça intéresse ;P)

Je pense avoir détaillé toutes les formules ci-dessous :

En colonne A de "Nomenclature" :

=SI(LIGNE()-3>$C$3;"";INDIRECT("BDD!A"&PETITE.VALEUR($BDD.AB$1:AB$410;LIGNE()-3);1))

, va chercher la petite valeur du numéro de ligne correspondant à un composant de l'équipement choisi et renvoie son nom par indirect(BDD!A;1)

la validation pour la liste déroulante en B1 de "Nomenclature" pour choisir l'équipement :

$BDD.$A$1:$AA$1

, la ligne 1 de "BDD" des colonnes A à AA

En colonne B de "Nomenclature" :

=SI(LIGNE()-3>$C$3;"";INDIRECT(ADRESSE(PETITE.VALEUR($BDD.AB$1:AB$410;LIGNE()-3);EQUIV($B$1;$BDD.$A$1:$AA$1;0);4;1;"BDD");1))

, va chercher la petite valeur du numéro de ligne correspondant à un composant de l'équipement choisi et renvoie la quantité par

ADRESSE(PETITE.VALEUR($BDD.AB$1:AB$410;LIGNE()-3);EQUIV($B$1;$BDD.$A$1:$AA$1;0);4;1;"BDD")

, puisque dans ce cas la colonne est variable en fonction de l'équipement choisi

En C3 de "Nomenclature" :

=NB.SI($BDD.AB:AB;">"&0)

, le nombre de composants trouvés pour l'équipement choisi

En AC1 de "BDD" :

=EQUIV($Nomenclature.$B$1;A1:AA1;0)

qui indique la colonne correspondant à l'équipement choisi

En colonne AB de "BDD" :

=SI(INDIRECT(ADRESSE(LIGNE();$AC$1;4;1);1)*1=0;"";LIGNE())

, donne le numéro de la ligne si elle comporte un composant de l'élément choisi

Bonjour,

Une nomenclature en BD se représente ainsi:

5 0055-10020-006-H02

5.1 0055-10020-106-H02

5.1.1 0055-10020-206-H02

5.1.1.1 0055-10020-206

5.1.1.1.1 0055-10020-206-T01

5.1.1.2 0055-10020-206-T02

5.1.2 STAN-70019-209

5.1.3 STAN-70022-209

5.1.4 STAN-70020-209

5.1.5 0055-10020-106-T01

5.2 STAN-80222-021

5.2.11 STAN-80222-021-T01

Boisgontier

48copie-de-phase.xlsm (29.10 Ko)
Rechercher des sujets similaires à "nomenclature automatique"