Gestion de stock difference entre deux valeurs

Salut tout le monde !

Je suis débutant en vba, et le sujet de mon stage est de créer une application pour la gestion d'un stock de pièces. Le but serait de faire une difference de quantité sur une réference deja écrite dans le tableau quand on fait une "sortie".

Voici mon travail, j'espere m'etre bien expliqué sur la problématique.

Merci

23zipettev2.xlsm (29.08 Ko)

Bonjour pablitto,

L'idée est bonne, maintenant la question est : Ne serait-il pas plus simple d'avoir :

1 Tableau répertoriant toute les actions (Entrée et Sortie) (feuil 1 de mon fichier joint)

1 Tableau avec tes stocks réels (feuil 2 de mon fichier joint)

21pabl.xlsx (9.53 Ko)

Ensuite il te reste a faire a coté un userform avec tes codages de colonnes.

Pour le tableau 1 c'est pas trop dur à faire je pense au vu de ce que tu as déjà créer, il suffit de faire un système avec des "optionbutton" qui permettra de reconnaitre si c'est une entrée ou une sortie, ensuite faire un petit peu de tambouille pour les entrées colonnes.

Pour le tableau 2 c'est surtout des récupérations de valeur dans une variable à laquelle tu vas additionner ou soustraire une autre variable qui sera la quantité (entrée ou sortie) que tu rentre.

Au final tu auras que 1 userform qui te permettra de faire l'entrée/sortie en te répertoriant tout dans un tableau et en t'affichant le stock réel dans un autre.

Éventuellement s'il y a beaucoup de pièces, tu peux faire un 2eme userform de recherche permettant de rechercher par référence ou par nom (ou les deux !)

Si tu as besoin d'un peu d'aide n'hésite pas laisser un petit message quelqu'un d'autre (ou moi même) y répondrait avec plaisir. Si tu ne vois vraiment pas comment faire je te ferais éventuellement le codage du userform pour que tu comprenne l'idée

EDIT : Si tu veux de l'aide pour le codage userform j'aurais simplement besoin du nom de toute les colonnes que tu souhaite incorporer dans tes tableaux, sauf si tu veux utiliser une autre méthode.

Bonjour avie ,

Tout d'abord merci de ta réponse . C'est vrai que ton idée est pas mal, je pense que c'est faisable. Mais par contre , je ne vois pas vraiment comment coder tout ca ... Et puis j'aimerai quand meme vachement garder l'userform de recherche , qui selon mon chef est important.

De plus j'ai remarquer un autre problem dans mon code qui est au niveau de l'userform E/S . J'arrive a rentrer les valeurs pour une seule ligne mais après ca n'ecrit plus ... Je ne sais vraiment pas comment demander au language d'ecrire ligne après ligne. Ce code n'est pas que de moi ; on m'a beaucoup aide avant que j'en arrive la.

Merci en tout cas !

Bonjour,

l'erreur dans ton code est que quand tu colle tes valeurs cela se fait toujours sur la range "A2" si j'ai bien vu ton code avant de partir sur le petit codage que je te propose. D'où le fait que tu ne peux pas coller à la suite.

Alors je te propose le premier userform par rapport à mon idée, après attention pour de la gestion de stock cela reste très basique :

  • Pas d'alerte quand il n'y a plus de stock
  • Possible d'aller dans le négatif
  • 1 nom = 1 seule ReférenceMabec etc...

ce sont des choses qu'il est possible d'améliorer par la suite mais je ne vais pas m'embêter sur un code si jamais cela ne te convient pas

Tu me dis ce que tu en pense :

41pabl.xlsm (24.86 Ko)

Feuil 1 : Liste des entrées/sorties

Feuil 2 : Stock réel

Le stock réel est fait à partir du nom, si le nom de la pièce est différente, le stock ne sera pas mis à jour et un nouveau stock apparaitra.

Exemple : Pièce Bidule stock 15, si on retire 5 pièce bidule, cela va faire un stock de -5 au nom de bidule et Bidule sera toujours à 15. (Ici c'est la majuscule qui change)

Autre exemple : Pièce Bidule RéférenceMabec : 15

Ajout de Pièce Bidule RéférenceMabec : 16

=> Il ne va pas faire la différence entre les deux références, pour lui elles ont le même nom donc c'est les mêmes pièces.

Dans le cadre de ces exemples il faut ajouter du code pour que le logiciel comprenne ce qu'on lui demande.

Tiens nous au courant via le post, je travaillerais sur le userform de recherche en début d'après-midi, si tu as des modifs, soit tu comprend le code tu le fais, soit tu me demande et je vois ce que je peux faire (Je n'ais pas un niveau excellent en VBA mais je me débrouille)

Petit update :

Ajout du bouton recherche avec Recherche par Nom et Recherche par Référence MABEC.

18pabl.xlsm (32.26 Ko)

J'attend ton retour

Oui j'avoue c'est pas mal du tout , personnellement ca me convient tres bien ! M'enfin c'est trop gentil, m'expliquer la demarche m'aurait suffit ! Dans un premier temps je vais etudier ton code , je te demanderai peut etre des explications , car a mes yeux de debutant en VBA , c'est hyper complexe

Merci de ton attention , je revient tout a l'heure

Bon bah j'ai etudié le code de ton programme , ca le fait pour moi, je vais essayer de l'ameliorer moi meme maintenant. Merci pour ton aide , passe une bonne soirée , et puis en cas de bloquage je reviendrai faire un tour sur le forum

Salut tout le monde !

Alors le problem qui se pose a moi maintenant est pour que le code reconnaisse majuscule ou minuscule ... Je veux dire si j'ecrit "Bidule" et "bidule" qu'il comprenne pareil .

J'ai un petit peu modifié le code que m'a fourni avie, voila mon fichier.

Merci

24pablv.xlsm (36.31 Ko)

J'ai aussi essayé de rajouter une boucle conditionnelle avec un "If" et un "End If" mais le compilateur persiste a me dire que je n'en met pas ... Si j'ai crée cette boucle c'est afin de detecter un nombre negative, pour qu'il puisse afficher la valeur zero dans ce cas.

Merci

Up

Bonjour pablitto,

J'ai vu ce que tu avais fais, je m'occupe de ça dès que je peux sauf si jamais quelqu'un te répond avant ! Je regarde ça dans la soirée !

Bon voila , merci de ton aide , j'ai encore un peu modifié le code, en ajoutant "maxi 10 caracteres" a la variable refmabec. car la reference est de 10 caracteres maxi. Voila le fichier.

6pablv.xlsm (41.99 Ko)

Bonjour,

Alors j'ai regarder j'ai fais rapidement les choses (un peu salement)

Tu trouvera le code avec la boucle if dans le userform 1 sur le commandbutton click.

je l'ais laisser apparaitre avec des commentaires tu devrais pouvoir trouver la boucle et le comprendre (il faut juste savoir où le mettre)

Tu trouvera aussi un code à la fin de chaque userform de recherche + le principal.

Ce code se passe sur les textbox lorsqu'elles changent. ça écrit tout en majuscule (référence etc), donc la personne qui cherche quelque chose que ce soit écrit minuscule ou majuscule ça trouvera bien. Après je ne sais pas si cela te convient (si jamais tu as des références avec des Minuscules et Majuscules), si jamais ce n'est que des lettres et des chiffres cela devrait te convenir.

Petit détail : Tu n'as pas mis de limite de caractère sur ton dernier fichier, ou bien je ne l'ais pas constaté, j'ai donc ajouté la limite (Maxlenght des propriétés textbox) à 10 sur les textbox MABEC de ton user de recherche et ton user entrée/sortie.

25pablversion7.xlsm (32.31 Ko)

Oui ca va c'est une boucle relativement simple au final, j'arrive bien à comprendre . En tout cas même si tu as fait salement, je comprend bien donc merci de ton aide.

J'ai une question ; j'aimerais intégrer une boucle qui me permettrait de verifier la longueur de la chaine de caractere de type

nbrcarac = Len(Me.TextBox1.Value)

If nbrcarac < 9 Then

MsgBox "Vous devez saisir 9 caractères minimum !"

End If

Mais je ne sais pas ou la placer (enfin je veux dire par rapport au code) . J'ai essayer pour l'instant sans resultats bien concluants ...

Merci de votre aide !

Bonjour !

Alors ton code est bon, pour le placer il faut penser à quand tu aimerais repérer si il y a une erreur.

Ici par exemple c'est quand la personne va valider, il faut annuler l'action si ça fait pas 9 caractères (pour Référence MABEC)

Alors par rapport au fichier dans le userform1, référence MABEC c'est la textbox2.

Donc la Textbox2 doit être vérifier quand on valide et ce juste avant toute les actions.

Dim nbrcarac As Variant
nbrcarac = Len(Me.TextBox2.Value)
If nbrcarac < 9 Then
MsgBox "Vous devez saisir 9 caractères minimum !"
Exit Sub
End If

Tu colle tout au début du bouton de validation de ton userform d'entrée/sortie.

Pour faire bien, tu mes le même code sur ton bouton de recherche de référence aussi ! Attention, ton nom de textbox doit passer de 2 à 1 si je dis pas d'idioties.

Je pense que tu devrais trouver la ligne qui suit Commandbutton?.click dans les deux userform

J'ai ajouté un Exit Sub pour arrêter l'execution (c'est à dire le collage des valeurs pour le userform 1 et la recherche pour l'autre) sinon si tu mes ton code sans ça, il va te dire attention c'est 9 caractères minimum mais il va tout te coller quand même si tu l'arrête pas.

Rechercher des sujets similaires à "gestion stock difference entre deux valeurs"