Simplifier le code (diminuer le temps de calcul) d'une base de données de références

RicoExo

XLDnaute Nouveau
Bonjour,

Je suis chargé par ma société de mettre au point un fichier (Excel) gérant une base de données des références pièces du produit que nous concevons.

• Cette base de données permet aux utilisateurs de rentrer des pièces auxquelles sont attribuées automatiquement une référence en fonction de leur type (mécanique, doc, électrique, …). Les utilisateurs doivent liés la pièce qu’il s’apprête à s’insérer à au moins un assemblage parent direct (par exemple telle pièce appartient à tel assemblage).
• Le fichier doit de plus permettre de pouvoir modifier certaines choses (changement de variantes, changement de révision, de quantité par assemblage, d’assemblages parents, la suppression partielle/totale, …)
• Enfin il doit permettre aussi une lecture seule de la BDD ainsi que de voir les liens entre les composants et assemblages.

Voilà pour expliquer le fichier joint (servez-vous pour ceux qui veulent l’utiliser pour eux !).

Maintenant mon problème est celui-ci : lorsqu’une modification est faite dans la BDD, je voudrais qu’il y ait une information sur la date de la modification et le nom de l’utilisateur (apparaissent dans les deux dernières colonnes dans l’onglet « Périmètre ») responsable à cette pièce mais aussi aux assemblages qui comprennent cette pièce ainsi que les assemblages qui comprennent ceux-ci et ainsi de suite.

Ma fonction VB répondant à ce problème marche (voir code dans modules « RechMAJModif » et « MAJModif » dans le fichier) mais elle est très lourde et plus il y a de pièces rentrées, plus le temps d’opérations est long (plusieurs minutes pour près de 200 entrées pour l’instant et il y aura près de 1000 entrées). J’ai mis en commentaire ces deux fonctions, il suffit de les remettre en code pour faire marcher cette fonction en faisant une modification avec les boutons de la page « accueil » appropriés.
Les onglets n’apparaissent pas volontairement pour que l’utilisateur soit obligé de cliquer sur les boutons afin de travailler sur le fichier. Ils peuvent bien sur être affiché par les options d’Excel.

Ma question est de savoir si quelqu’un pouvait m’aider à alléger le code afin que le temps de calcul soit réduit à quelques secondes.

Concrètement le code est conçu de la façon suivante : dans la feuille « TableRelation » la fonction va chercher les assemblages parents directs (colonne 3) de la pièce concernée (colonne 1) et mettre les informations date et nom user à jour dans la feuille « Périmètre » où ils sont présents. Ensuite cette étape recommence mais maintenant ce sont ces références-ci (qui sont dans la colonne 1) pour lesquelles on va chercher leurs assemblages parents et mettre à jour les informations et ainsi de suite jusqu’à l’assemblage maitre qui est 9000001.

Si un mot de passe est demandé c’est « QUALITY ». Comme il y a un grand nombre d’informations dans le fichier et que je ne suis pas sur d’avoir été très clair, je me tiens bien sur à disposition pour répondre aux questions plus spécifiques. Un fichier word « How-to » destiné aux utilisateurs de ma société existe si cela peut vous aider, je pourrais le joindre ultérieurement.

Merci d’avance !!

Regarde la pièce jointe 20111107_BDD-referencement_FINAL.zip
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 316
Membres
102 860
dernier inscrit
fredo67