Gestion de stock (entrée, sortie, journal...)

Bonjour à tous,

Je me permet de poster sur le forum car on m'a vanté les mérites de celui-ci ainsi que l’amabilité des utilisateurs, voici donc mon "problème" :

En tant que débutant en VBA, je dois pourtant créer un fichier me permettant d'assurer une gestion de stock. En résumé, il s'agit de permettre l’enregistrement de mouvements sur des stocks de produits et de tenir à jour les stocks en quantités et en valeur. Ce fichier devra donc remplir les tâches suivantes :

  • La saisie des entrées en stocks
  • La saisie des sorties de stocks
  • La consultation de l’état du stock à un moment donné
  • La consultation des mouvements sur le stock entre deux dates

J'ai commencé à travailler dessus mais je suis rapidement trouvé bloqué à cause de mes connaissances un peu rudimentaires. Dans l'onglet "Menu", j'ai créé 3 boutons chacun associés à 1 Userform.

Pour le 1er bouton ("Modification des stocks"), son but est comme son nom l'indique d'enregistrer par la saisie chaque mouvement avec :

  • La date
  • La référence du produit ou le nom du produit
  • La référence (code ou nom) de l’acheteur ou du vendeur ou du service à l’intérieur de
l’entreprise qui «fournit » ce produit ou au contraire, le « prélève ».
  • Le sens du mouvement (entrée ou sortie)
  • La quantité
  • Le coût unitaire HT (en euros)
  • Le coût total HT
Lorsqu'un mouvement sera saisi, je souhaiterai que cela soit directement inscrit sur l'onglet "Journal des stocks" afin de pouvoir évaluer les stocks.

Les deux autres boutons sont des applications de recherche. Une à date fixe et une pour une période donnée. J'aimerai qu'en saisissant la/les dates et le nom du produit, la valeur du stock s'affiche (selon la méthode FIFO mais peu importe, je pourrais m'occuper de ça). On doit pouvoir savoir quel est le stock final à un moment donné, pour un produit donné.

J'ai également créé deux autres onglets de référencement avec les produits et les Acheteurs ou Vendeurs (A.V, selon s'ils nous achètent ou nous vendent un produit).

Vous trouverez ci-joint l'ébauche sur laquelle j'ai commencé à travailler.

Merci beaucoup à tous pour votre aide !

Désolé pour la longueur du post mais j'ai voulu être le plus précis possible pour faciliter la compréhension de mon problème. N'hésitez pas si toutefois un point n'est pas clair.

Cordialement,

Bonsoir,

Hum... Je ne suis pas persuadé qu'une valorisation FIFO soit gérable avec Excel. (Surtout au niveau débutant) En tout cas je ne m'aventurerai pas dans cette galère !

En revanche une gestion de stock simple, c'est relativement accessible, mébon Yfo quand même se retrousser les manches hein !

On ne peut pas faire n'importe quoi : dans un premier temps je te donne un petit modèle de gestion de stock très simple car il ne concerne que quelques produits d'une buvette...

La première feuille ne te concerne pas. Je l'ai laissée quand même car elle faisait partie du projet : C'est à partir de cette feuille que l'utilisateur valorisait son stock...

En revanche les autres feuilles sont essentielles : Une feuille (Mvts) de mouvements entrée et sortie de stock c'est la plaque tournante du projet. Une fois cette feuille remplie, le stock "sort" tout seul.

Une feuille "Param" recueille les paramètres essentiels (produits,Clients, Fournisseurs)

Une feuille "Calc" normalement masquée contient une batterie de formules qui alimentent en permanence la feuille Stock.

Je te propose de calquer ton projet sur celui-ci : Il est extrêmement robuste et peux gérer sans problème plusieurs centaines (milliers de références)

j'ai donc commencer un peu à adapter ton projet en fonction de ce modèle.

j'ai transformé tes listes en tableaux Excel nommées. (Voir la définition des noms dans Formules > gestionnaire de noms...)

Il faudra différencier tes références "fournisseurs" et "clients" sinon galère ensuite pour faire tes extractions...

Dans la feuille "Mvts" Une colonne Entrée/Sortie est inutile par contre une colonne Quantités_entrées et une autre Quantités_Sorties est préférable.

Ton banquier ne procède pas différemment : Il met tout dans les mêmes colonnes sauf les entrées/sorties...

J'ai laissé subsister la colonne prix unitaire dans cette BD Mvts. En revanche dans cette BD le prix total n'a aucun intérêt... Surtout sous forme de formule !

Le Userform de saisie pourra être revu en fonction de cette contrainte.

Bon pour les recherches on verra plus tard si mes suggestions te conviennent, mais encore une fois pour une valorisation FIFO (ou autres...) mieux vaut partir sur ACCESS.

A mon avis sur Excel on doit se limiter à une gestion de stock dans le but d'optimiser les commandes en fonctions du stock restant et de la consommation prévisible...

A+

4'517gestock.zip (44.27 Ko)

Bonjour Galopin01,

Tout d'abord merci de ta réponse !

Après avoir lu ton message je suis très satisfait et les deux fichiers que tu m'as envoyé sont très biens. Je suis d'accord avec tes remarques sauf pour le FIFO qui est une condition malheureusement obligatoire. C'est toi "l'expert" mais je ne pense pas que cela soit si difficile, quitte à ne pas passer par un userform ou VBA. Il faut assurer un suivi par lot des produits en stocks, c'est à dire qu'à chaque entrée de x unités au même moment constitue un lot dont il faut suivre l’évolution au fur et à mesure des sorties. Parce que lorsque nous avons n unités à extraire du stock, on commence par prendre le nécessaire dans le lot le plus ancien.

Le Userform du fichier finalisé que tu m'as envoyé me convient pas mal, il faut juste ajouter la date, le fournisseur/acheteur, le CU et le montant total du mouvement.

Malheureusement la méthode FIFO et les autres pré-requis sont obligatoires donc je m'adapterai, j'essaierai de bidouiller si tu ne vois pas de solution ne t'inquiète pas.

Merci beaucoup pour ton aide en tout cas, ce forum n'a pas voler sa réputation et ses utilisateurs non plus !

bonjour,

Aucun des 2 fichiers fournis ne peut gérer des prix différents pour une même référence.

Au mieux tu pourras estimer ton stock à la valeur de celle du dernier approvisionnement.

Le prix total n'a aucun intérêt dans les Mvts vu qu'il est calculable à tout moment dans la feuille de stock.

Je te laisse piloter pour l'instant vu que tu as l'air d'avoir des idées bien arrêtées.

Reviens avec des questions précises.

A+

Bonjour

Voici un début

Voir si cela convient avant d'aller plus loin.

Merci

bonjour Habitude

j'ai ouvert ton classeur et je me retrouve avec des références manquantes a chaque boutons donc pas possible de visualiser

Pascal

Oui je vois, développé avec office pro plus, problème avec l'objet date picker.

Je vous reviens

Bonjour

Ma version : Pour le FIFO

Hemmm : j'ai aussi un DTPicker

Je n'ai travaillé que sur le 1er Userform

Rebonjour

J'ai remplacé le dtPicker par un simple combobox.

A mon avis, 2 dates ne seraient pas superflus. (date transaction et date comptable)

Bonjour à tous,

Navré pour mon absence de réponse, j'ai eu quelques soucis qui m'ont tenu écarté de l'ordinateur. Bref, merci pour votre aide tout d'abord !

J'ai regardé le fichier d'"Habitude" car l'autre ne fonctionnait pas ("Une erreur est survenue lors de l'appel au controle Windows Date and Time Picker"). Il est très bien ! J'aimerai modifier le format du coût unitaire pour pouvoir saisir des décimales mais je ne comprends pas (NumberFormat = "_-* # ##0.00\ ""€""_-;-* # ##0.00\ ""€""_-;_-* ""-""??\ ""€""_-;_-@_-":). J'ai également essayer de modifier le format date pour dd/mm/yyyy mais je pense qu'il faut modifier autre chose dans le code apparemment.

Je sais que c'est beaucoup demander mais serait il possible d'ajouter des commentaires afin que je comprenne ce que le code fonctionne ? Mon but étant d'apprendre en même temps, ça me serait vraiment utile !

Je ne sais pas si une date comptable serait vraiment utile car on veut juste tracer l'entrée des produits dans le stock afin de pouvoir les ressortir selon la méthode FIFO. Pour l'évaluation de la valeur cela n'est pas nécessaire non plus à priori.

Merci encore et merci d'avance !

Bonjour

Une version sans DTPicker

@Banzai64 ce fichier me va très bien pour l'instant, merci beaucoup !

Une idée pour appliquer la méthode FIFO au calcul de la valeur du stock via les 2 autres Userform ?

Bonjour

Je croyais l'avoir traité

As tu essayé de faire des sorties

Les stocks sont vidés par ordre chronologique, mais peut-être que je me suis trompé

Ce qui me gêne c'est que tu ne l'as pas testé

A quoi ça sert que Ducros Banzai64 se décarcasse (blague de vieux)

Je l'ai testé ne t'inquiète pas et c'est très gentil de te décarcasser pour moi :p

Là ça me donne la valeur en volume du stock, pas en € et je ne le vois pas dans le userform avec la quantité restante. Comment faire pour actualiser le journal si je veux supprimer une ligne par exemple ?

Si j'ai bien compris, la méthode FIFO :

Entrée 15 unités à 1,5€

Entrée 10 unités à 2€

Sortie de 20 unités, 15 à 1,5€ et 5 à 2€.

On est d'accord avec cet exemple ? Pour être sûr d'avoir bien compris

Ma question portait sur l'utilisation des 2 autres userform, je ne remet pas du tout en question ton travail très loin de là ! Je t'en suis reconnaissant et je suis admiratif.

Bonjour

Petit rappel

Banzai64 a écrit :

Je n'ai travaillé que sur le 1er Userform

Pour la gestion FIFO

Je ne me suis pas inquiété du prix d'achat ---> sinon expliques comment tu ferais

Moi je me suis basé sur les dates

En cas de retrait les produits sont retirés du stock ayant la date la plus petite (donc date la plus ancienne)

Il faut faire des tests

Fais quelques entrées sur un produit ensuite une sortie de ce produit et vérifies

Autant pour moi à propos des Userforms.

C'est la même idée que toi, par ordre chronologique mais en prenant en compte l'idée de prix.

Exemple :

Achats

Date Quantité Prix Unitaire

Mars 2014 50 10€

Avril 2014 55 11€

Mai 2014 15 12€

Valeur du stock à l'unité = (50*10+55*11+15*12)/(50+55+15)=10.708€

Pour la revente du stock :

Vente de 75 unités, on prend les stocks par ordre chronologique. On vide donc le 1er et on entame les suivants jusqu'à arriver à 75.

Valeur de sortie du stock à l'unité = (50*10+25*11)/75=10,33€

Valeur du stock restant = 30*11+15*12=510€

Je sais pas si j'ai été clair.

En gros pour le 1er userform, sur l'onglet sortie on aurait pas besoin du prix unitaire puisqu'il se calcule via les entrées, pas par rapport au prix de revente.

Bonjour

A tester

Quand je veux saisir une entrée, il y a une erreur VBA : "Dépassement de capacité"

Bonjour

C'est le IIf qui évalue les 2 solutions

Remplace cette ligne

 .Range("G" & Ligne) = IIf(Me.OpbEntrée = True, Val(Replace(Me.TbPrixUnit, ",", ".")), Round(PrixTotal / Combien, 2))

Par celles-ci

      If Me.OpbEntrée = True Then
        .Range("G" & Ligne) = Val(Replace(Me.TbPrixUnit, ",", "."))
      Else
        .Range("G" & Ligne) = Round(PrixTotal / Combien, 2)
      End If

Parfait, ça marche super bien ! Le calcul de la valeur des stocks fonctionne très bien, bravo !


Qu'en est-il des autres userform ? Vous pensez y arriver ?

Merci beaucoup pour votre aide en tout cas

Rechercher des sujets similaires à "gestion stock entree sortie journal"