Gestion de pièce

Bonjour,

Je poste aujourd'hui car j'ai pour mission d'améliorer le tableau Excel que nous utilisons dans mon entreprise pour lister nos références de pièces.

J'ai créé trois tableaux, le menu, la base de données et une page qui va me permettre d'isoler les données que je veux utiliser.

J'ai alors une boîte de dialogue qui va me permettre de rechercher une référence de pièce, chaque ligne contenant cette référence va alors être coupée vers le troisième tableau puis une nouvelle boite de dialogue va s'ouvrir contenant une liste déroulante des pièces recherchées disponible. Cette seconde boite va permettre de modifier les informations concernant la pièce que l'on sélectionne (son emplacement dans les étagères, son nombre etc...) . Une fois validées, les pièces sont réintégrées dans la base de données avec les modifications apportées.

Voila mon projet, maintenant voici les problèmes que je rencontre :

- La liste déroulante contenant des lignes ayant les mêmes références, j'ai été obligé de mettre en place un code en début de ligne afin que chaque "pièce" sois différente l'une de l'autre. Cependant je n'ai pas trouvé de solution pour générer un code à chaque fois que je remets les informations dans la base de données. Si une autre solution est possible je suis preneur!

- Une fois les modifications faite et validées, j'aimerais que les lignes qui réintègrent la base de données soient insérée en bas de page lorsqu'une ligne est vide. Je n'ai pas réussi à réaliser cela. J'ai beau essayer des choses que j'ai pu voir en cours ou sur des forums ça ne fonctionne pas.

- J'ai également une boite qui me permettra de rajouter des pièces dans la base de donnée, même soucis il faudrait qu'elle se rajoute en fin de liste.

- Soucis bien moins important mais j'aimerai afficher un msg lorsque la référence indiquée n'est pas en stock.

Merci à ceux qui liront ce sujet, en attente d'une réponse je vous met mon fichier à disposition.

27projet-stock.zip (315.67 Ko)

Bonjour,

Voici un premier retour concernant tes problèmes:

Tu parles d'un code permettant d'identifier les pièces ayant la même référence, pourquoi deux pièces peuvent avoir la même référence dans ta base? C'est parce qu'une pièce peut être stockée sur différentes étagères qui ont chacune une ligne?

Cependant je n'ai pas trouvé de solution pour générer un code à chaque fois que je remets les informations dans la base de données.

Comment remets tu les informations dans la base de données? Tu parles de quand tu ajoutes à nouveau la pièce mais pour une étagère différente?

Une fois les modifications faite et validées, j'aimerais que les lignes qui réintègrent la base de données [...]

Je crois que j'ai mal compris ton flux de données avec ta base, tu enlèves tes données de la base le temps de les modifier? C'est à ça que sert ta feuille pour isoler les données?

j'aimerai afficher un msg lorsque la référence indiquée n'est pas en stock

Tu parles de quand on utilises le formulaire de recherche et de quand la référence n'est pas trouvée?

Bonjour,

Merci pour ta réponse.

Exactement, il peut y avoir des pièces ayant la même référence rangée sur une étagère différente ou dans une agence différente, qui auront alors une ligne chacune. C'est pour ça que j'ai besoin d'un code pour chaque ligne car si je n'en utilise pas, la liste déroulante ne différencie pas chaque ligne l'une de l'autre.

Alors quand je parle de remettre les informations dans la base de donnée c'est parce que je les sors de mon tableau "donnée" afin de les isoler de façon à pouvoir les modifier grâce à ma seconde Userform. C'est à ça que sert le tableau "Donnéepassage". Cependant j'aimerais que les lignes que je réinscrit dans la base de donnée soit le plus en bas possible lorsque qu'une ligne est libre.

Par exemple, je veux la référence "AX14YB" qui se trouve à plusieurs endroit différent. J'aurais alors plusieurs ligne avec la même référence mais dans des agences différentes ou sur des étagères différentes. Une fois que j'ai sélectionné la pièce qui m'intéresse et que je l'ai modifié alors celle-ci doit être repositionnée avec les autres lignes dans la base de donnée.

J'ai réussi à mettre en place un code qui permet de quitter l'utilitaire si la personne à validé la recherche de pièce sans inscrit de texte dans la Userform. J'aimerai aussi mettre en place un code qui diras à l'utilisateur que sa pièce n'est disponible nul part afin d'éviter d'ouvrir la deuxième Userform pour rien.

Bonjour,

D'accord je comprends mieux,

Je ne suis donc pas vraiment sûr que le code unique soit utile, on peut stocker quelque part la référence + l'étagère pour savoir à quelle ligne ça correspond, ou alors garder le code mais faire quelque chose comme référence_étagère.

Je ne pense pas que ce soit nécessaire de sortir les données de la base pour les modifier, encore une fois si tu as un code pour identifier les lignes, il doit suffire de les retrouver et de mettre à jour les données, ça éviterait d'avoir à gérer le fait de les sortir et de les remettre.

Pour inscrire le plus bas possible il y a une astuce:

ligExport = Range("A" & Rows.Count).End(xlUp).Row +1

ça permet d'avoir le premier numéro de ligne vide sur la colonne A, ça revient à se positionner sur la dernière ligne colonne A, faire le raccourci Ctrl+flèche directionnelle haut, et décaler d'une case vers le bas, et prendre son numéro de ligne.

Après il ne reste plus qu'à utiliser la variable ligExport pour ajouter des données à la base, pour la modification tu peux aussi utiliser une variable comme ça mais elle ne sera pas initialisée de la même manière.

Quelle sorte d'aide souhaites-tu? Des conseils? Des bouts de code? Ou autre?

Rechercher des sujets similaires à "gestion piece"