Microsoft 365 Gestion des lots en FIFO

  • Initiateur de la discussion Initiateur de la discussion hbb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hbb

XLDnaute Occasionnel
Bonjour et meilleurs voeux !
Je suis à la recherche d'une formule conditionnelle pour identifier les dates d'entrée en stock qui ne respectent pas l'ordre de production des lots (FIFO)
Explication pour l'article A par exemple :
- Des lots de production dans l'ordre A1 jusqu'à A7
==> Attention, le nombre de lots varie d'un article à l'autre et donc le nombre de lignes.

- Des dates d'entrée en stock :
Le FIFO est respecté à partir du moment où la 1ère entrée en stock se produit pour le lot A1.
Les dates d'entrée en stock sont alimentées de gauche à droite pour chaque lot (10 dates est le maximum mais pas systématiquement atteint)
Quand un lot est consommé entièrement, on passe au lot suivant (A2) ....et ainsi de suite....

Besoin : Identifier un lot dont la date d'entrée en stock n'est pas conforme.
Dans notre cas, la fin du lot A5 aurait du entrer en stock entre le 16/2 / 17/2 au lieu du 20/2

J'espère que l'explication est assez claire.
Merci d'avance pour votre aide,
Bonne journée
 

Pièces jointes

Bonjour,

En G5, à recopier vers le bas :

VB:
=LET(cel;PRENDRE(SUPPR.PLAGE(C5:F5);;-1);SIERREUR(SI(cel>PRENDRE(SUPPR.PLAGE(C4:F4);;1);"erreur : "&TEXTE(cel;"j/m");"");""))

Capture d'écran 2026-01-02 114957.png

Daniel
 
Bonjour à tous les 2,
merci beaucoup pour votre réactivité !
@daniel, la formule fonctionne bien et répond au besoin (je ne connaissais pas ce type de formule !!!)
Pour aller encore plus loin, est-il faisable d'englober l'ensemble des lignes supérieures (et pas uniquement celle du dessus).
Mais uniquement pour l'article concerné.

Ce fichier étant un exemple, je me projette dans mon fichier d'origine, le critère pourrait être le suivant :
- Je sélectionne toutes les lignes supérieures jusqu'à ce que la valeur en colonne B contienne + de 2 caractères.

merci encore,
 
Daniel,
effectivement, ça ne fonctionne pas.
merci malgré tout pour l'effort fourni, je vais continuer à partir de ta formule initiale, déjà très intéressante.
Si la solution se présente, n'hésite pas !!!
bonne journée,
Est-ce que tu pourrais partager un autre classeur avec le cas que tu cherches à résoudre. J'ai fait ceci qui semble me donner le résultat souhaité :

Capture d'écran 2026-01-02 151640.png

Daniel
 
Bonsoir Daniel,
Pour chaque article la plage à analyser est variable. (7 lignes pour l'article A - 3 lignes pour l'article B - 4 lignes pour l'article C etc...)
Si on prend l'article B par exemple, si un nouveau lot B4 est fabriqué, une ligne est créée automatiquement au dessus de B3.
La plage à analyser passera donc à 4 lignes (B1 à B4)

Pas facile d'expliquer...
merci,


1767378095330.png
 
Bonjour,

En mettant la référence de l'article en colonne A :

Capture d'écran 2026-01-03 103219.png


En H5, à recopier vers le bas :

VB:
=LET(cel;PRENDRE(SUPPR.PLAGE(C5:F5);;-1);cela;MIN(INDIRECT("C"&EQUIVX("*";$A$1:A4;2;-1)&":C"&LIGNE()-1));SIERREUR(SI(ET(cel>cela;cela<>0);"erreur : "&TEXTE(cel;"j/m");"");""))

Daniel
 
Bonjour,

En mettant la référence de l'article en colonne A :

Regarde la pièce jointe 1226353

En H5, à recopier vers le bas :

VB:
=LET(cel;PRENDRE(SUPPR.PLAGE(C5:F5);;-1);cela;MIN(INDIRECT("C"&EQUIVX("*";$A$1:A4;2;-1)&":C"&LIGNE()-1));SIERREUR(SI(ET(cel>cela;cela<>0);"erreur : "&TEXTE(cel;"j/m");"");""))

Daniel
Bonjour Daniel,
Super merci beaucoup, cette nouvelle formule répond parfaitement à mon besoin (ou presque)

J'ai identifié un problème quand je créé une nouvelle ligne (cas à chaque production d'un nouveau lot).
La formule ne s'étend pas correctement jusqu'à la ligne -1
J'ai essayé de remplacer INDIRECT("C"&EQUIVX("*";$A$1:A13 par INDIRECT("C"&EQUIVX("*";$A$1&":A"&LIGNE()-1
Malheureusement, j'ai du passer à côté de quelquechose, ça ne fonctionne pas...

A bientôt,
 

Pièces jointes

Essaie, en G5, à recopier vers le bas :

VB:
=LET(cel;PRENDRE(SUPPR.PLAGE(C5:F5);;-1);cela;MIN(INDIRECT("C"&EQUIVX("*";$A$1:A4;2;-1)&":C"&LIGNE()-1));SIERREUR(SI(ET(cel>cela;cela<>0);"erreur : "&TEXTE(cel;"j/m");"");""))

Daniel
Bonjour Daniel,
Je ne vois aucune différence dans la structure de cette dernière formule d'hier 17h33... (par rapport à celle du matin)
merci
 
Bonjour Daniel,
Je ne vois aucune différence dans la structure de cette dernière formule d'hier 17h33... (par rapport à celle du matin)
merci
Bonjour,

Tu as raison, c'est la même. Je n'avais pas compris. En fait, le problème n' est pas lié à l'insertion de ligne, mais aux formules que tu as ajouté en colonne A. La fonction INDIRECT ne sélectionne plus que la ligne précédente. Je cherche comment contourner.

Daniel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
858
Réponses
4
Affichages
1 K
Réponses
6
Affichages
3 K
Retour