Gestion de stock méthode FIFO

  • Initiateur de la discussion Compte Supprimé 979
  • Date de début
C

Compte Supprimé 979

Guest
Bonjour à tous
wavey.gif


Dans la société pour laquelle je travaille, nous gérons notre stock actuel en PMP (Prix Moyen Pondéré).

Nous voulons mettre en place une "mini" gestion de stock annexe, mais cette fois-ci par la méthode FIFO :rolleyes:

Pourriez-vous m'aiguiller sur le comment arriver à calculer mes prix de sorties avec cette méthode ?

Je remercie par avance tous les "donnateurs" d'idées ou de code :D

A+
 
C

Compte Supprimé 979

Guest
Re : Gestion de stock méthode FIFO

Salut Foufoudora,

Merci à toi pour ce fichier ;)
mais malheureusement il ne va pas m'aider à grand chose :(

Il n'y a aucune formule de calcul pour le FIFO seulement pour le CUMP (PMP)

Je voudrais trouver du code VBA pour le calcul
marteau.gif


A+
 

Foufoudora

XLDnaute Occasionnel
Re : Gestion de stock méthode FIFO

Salut Bruno45,

Malheureusement je ne sais pas grand chose en VBA devant un maitre comme TOI.

par contre pour le calcul je suppose que tu connais aussi la façon de gérer le stock; premier rentré premier sorti. En faite il faut que le stock entré en premier soit à zéro avant de soustraire du prochain stock. En faite je ne t'apprends pas grand chose.

Désolé de ne pas pouvoir t'aider plus ce que ca.

Salutation
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Gestion de stock méthode FIFO

Malheureusement je ne sais pas grand chose en VBA devant un maitre comme TOI.
Merci pour le compliment ;)

Mais je suis très loin d'être un Maître en la matière :p

Certe, je me débrouille peut-être pas trop mal,
mais on en apprend tous les jours, même moi :D

par contre pour le calcul je suppose que tu connais aussi la façon de gérer le stock; premier rentré premier sorti. En faite il faut que le stock entré en premier soit à zéro avant de soustraire du prochain stock. En faite je ne t'apprends pas grand chose.
Yes, ça je sais, le problème c'est qu'il faut mettre ça en pratique en VBA !
J'ai les neurones qui chauffent à fond, je pense avoir trouver, faut que je teste ...

Désolé de ne pas pouvoir t'aider plus ce que ca
Ne soit pas désolé, toute aide, la plus petite soit elle, est toujours fortement appréciée
yaisse.gif


Encore merci et A+
 

Foufoudora

XLDnaute Occasionnel
Re : Gestion de stock méthode FIFO

Salut Bruno45,

j'ai trouvé ce fichier joint dans mon grenier et je suis sûr d'avoir le récuperer du forum mais je n'ai jamais testé cette fonction. (au passage merci pour celui qui l'a fait) ce ne sait pas si ca peut t'aider

Salutations

Edit: au cas où tu trouves la solution, serait-il possible de l'avoir? Merci par avance
 

Pièces jointes

  • FIFO.xls
    29 KB · Affichages: 1 168
  • FIFO.xls
    29 KB · Affichages: 1 216
  • FIFO.xls
    29 KB · Affichages: 1 237
Dernière édition:

roro69

XLDnaute Impliqué
Re : Gestion de stock méthode FIFO

Bonjour,voici une petite contribution si cela peut t'aider:(trouver sur le net)

S'il s'agit de la même référence de produit, achetée d'abord à 2 puis à 2,10 tu as juste à te soucier du stock restant à l'ancien prix .



SI q0>0 alors
prix=2 (prévoir p0 ?)
q0=q0-quantité_achetée
SINON
prix=2,10 (prévoir p1 ?)
q1=q1-quantité_achetée
FINSI
faut aussi gérer le cas ou l'ancien stock ne suffit pas pour une commande:

Et prévoir un "glissement" q1->q0 quand q0 passe à zéro.
Là en macros

A++
 
C

Compte Supprimé 979

Guest
Re : Gestion de stock méthode FIFO

Salut Roro69,

Merci pour ta réponse, c'est bien ce que je suis en train de faire, en tout cas je crois :D

Question subsidiaire :
Je souhaite traiter également le retour d'article (quantité négative dans ma feuille Sorties) !

Je ne sais pas comment procéder !?

Bon, je continue ;)
 

noviceAG

XLDnaute Impliqué
Re : Gestion de stock méthode FIFO

Bonjour à tous, le Forum,
Si ceci peut t'aider .....

Option Explicit

' Code développé par Michel Banzai64 sur le Forum Excel-downloads
' https://www.excel-downloads.com/threads/comment-calculer.83885/
' Que je remercie chaleureusement pour son extrême amabilité.

Private Sub RecapCout()
Application.ScreenUpdating = False

Dim Diko As Object ' Je vais stocker le nom des feuilles à traiter
Dim CurCel As Range' Cellule à lire dans la liste des feuilles
Dim Fdep As String ' Feuille en cours
Dim FFin As String ' Feuille pour impression
Dim LigD As Long ' Dernière ligne dans la page traitée
Dim LigF As Long ' Numéro de ligne pour écrire les données
Dim LigDate As Long ' Numéro de ligne qui contient la date trouvée dans la page en cours
Dim J As Integer ' Pour des boucles
Dim I As Integer ' Pour des boucles
Dim K As Integer ' Pour des boucles
Dim Nbk As Double 'Integer ' Stockage provisoire des valeurs du Tablo
Dim NbI As Double 'Integer ' Stockage provisoire des valeurs du Tablo

Dim Nom As String ' Nom contiendra le nom de l'ingrédient
Dim QuelleDate As Date ' Contiendra la date cherchée
Dim Tablo() As Variant ' Tableau pour stocker les infos
Dim Indice As Integer ' Nombre d'éléments de mon tableau
Dim Ws As Worksheet ' Pour manipuler aisément les feuilles du classeur

Dim Lig As Integer ' Pour le debogage
Lig = 26

Set Diko = CreateObject("Scripting.Dictionary")
For Each CurCel In [a_Traiter] ' Scrute la plage nommée
If CurCel = "" Then Exit For ' Je suis au bout de la liste
Diko.Add UCase(CurCel.Value), UCase(CurCel.Value) ' Passes tout en majuscules : Moins de tracas
Next CurCel

If Diko.Count = 0 Then Exit Sub ' Si pas de feuilles à traiter je quitte

FFin = Feuille_07
QuelleDate = Sheets(FFin).Range("A4") ' Je récupère la date
Sheets(FFin).Range("A8:C55").ClearContents ' j'efface la zone à imprimer

LigF = 8 ' A partir de quelle ligne je vais copier
For Each Ws In ThisWorkbook.Sheets ' Je regarde toutes les feuilles du classeur
If Diko.Exists(UCase(Ws.Name)) Then ' Feuille dans la liste donc je traite
LigDate = 0 ' A chaque feuille date inconnue
Fdep = Ws.Name
With Sheets(Fdep)
LigD = .Range("A65536").End(xlUp).Row ' Jusqu'ou je vais lire les données
For I = 6 To LigD ' je recherche si une date concorde
If .Cells(I, 1) = QuelleDate Then
LigDate = I
Exit For
End If
Next I
If LigDate > 0 Then ' On a trouvé une date
For J = 10 To 256 Step 4 ' Regarder dans toutes les colonnes 'S'
If .Cells(4, J) <> "S" Then Exit For ' Si plus de 'S' j'ai fini mon boulot
If .Cells(LigDate, J) <> "" Then ' Si une opération ce jour la
Nom = .Cells(2, J - 2) ' Récupère le nom du produit
For I = 6 To LigDate ' Du haut da zone jusqu'a la ligne de la date
If .Cells(I, J) <> "" Or .Cells(I, J - 1) <> "" Then 'soit une 'Entrée' soit une 'Sortie'
Indice = Indice + 3 ' Dimension de mon taleau (3 valeurs a ajouter)
ReDim Preserve Tablo(Indice) ' J'augmente la taille de mon tableau
Tablo(Indice - 2) = .Cells(I, J - 2) ' stocke le prix
Tablo(Indice - 1) = IIf(.Cells(I, J - 1) <> "", .Cells(I, J - 1), 0) ' soit la valeur 'Entrée' si existante , soit 0
Tablo(Indice) = IIf(.Cells(I, J) <> "", .Cells(I, J), 0) ' Soit la valeur 'Sortie' si existante , soit 0
End If
Next I
End If

If Indice > 0 Then ' Quelque chose dans le tableau
With Sheets(FFin)
For I = 3 To UBound(Tablo) Step 3 ' Décalage pour avoir les 'Sortie'
K = 2 ' Décalage pour avoir les 'Entrée'
While Tablo(I) > 0 ' Tant que la valeur 'Sortie' est > 0
If Tablo(K) > 0 Then ' Quelque chose mis en 'Entrée'
Nbk = Tablo(K) ' stocke ces valeurs car les originaux vont etre modifiés
NbI = Tablo(I)
If I = UBound(Tablo) Then ' On traite les valeurs de la date cherchée ?
.Cells(LigF, 1) = Nom ' Si oui ecrit le nom du produit
.Cells(LigF, 2) = IIf(Nbk > NbI, NbI, Nbk) ' La quantite
.Cells(LigF, 3) = Tablo(K - 1) ' La valeur
LigF = LigF + 1 ' On écrira sur la ligne suivante
End If
Tablo(K) = Tablo(K) - IIf(Nbk > NbI, NbI, Nbk) ' On ajuste les valeurs
Tablo(I) = Tablo(I) - IIf(Nbk > NbI, NbI, Nbk)
End If
K = K + 3 ' On se positionne sur la valeur 'Entrée' suivante
Wend ' On boucle
Next I ' On sort
Indice = 0 ' Si on recommence un autre tableau
End With ' Fin de saisie dans la page Recap
End If ' Fin de Quelque chose dans le tableau
Next J ' Aller voir une autre zone de données
End If ' Fin de date trouvée dans la page
End With ' Fin de With Sheets(FDep)
End If

Next Ws ' On va voir la prochaine feuille
Application.ScreenUpdating = True
End Sub


'
' Le tableau peut ressembler à ceci
'
' Jour quelconque en 'Entrée' 2 et RIEN en 'Sortie'
' Jour cherché en 'Entrée' 3 et 4 en 'Sortie'
' Je suis au traitement du Jour cherché ( I = UBound(Tablo) )
' Jour quelconque | Jour cherché
' Elément |Elément|Elément|Elément|Elément|Elément|
' X + 0 | X + 1 | X + 2 | X + 3 | X + 4 | X + 5 |
' Prix |Entrée |Sortie | Prix |Entrée |Sortie |
' P1 | 2 | 0 | P2 | 3 | 4 | : Tableau départ

' P1 | 0 | 0 | P2 | 3 | 2 | : Passage 1 - Inscription : Produit Quantité (2) Prix (P1)
' P1 | 0 | 0 | P2 | 1 | 0 | : Passage 2 - Inscription : Produit Quantité (2) Prix (P2)



En vous souhaitant un bon dimanche.
 

Statistiques des forums

Discussions
312 416
Messages
2 088 246
Membres
103 784
dernier inscrit
Métro-logue