Comparaison de valeurs et incrémentation

lolita -  
 lolita -
Bonjour,
je ss une débutante en excel 2007, s'il vous plaît j'ai besoin d'une formule pour faire la gestion de stock d'à peu près 3984 article. si stock-consommation<point de commande il faut acheté un multiple de la quantité QE de manière à avoir stock final>point de commande.
exemple :
consommation=12
STOCK INITIALE =10
point de commande=5
QE=12
stock final=stock initial+achat-consommation
si consommation -stock initial<point de commande (vrai ) alors
on achète QE
on calcule le stock final et si ce dernier <point de commande
on achète 2*QE et ainsi de suite
jusquà ce que stock final >POINT de commande
j'éspère que vous pourriez m'aider j'en ai vraiment besoin .et merci d'avance a+.

8 réponses

ben13.51 Messages postés 115 Statut Membre 7
 
Dim Conso as integer
Dim StockInit as integer
Dim PtCom as integer
Dim QE as integer
Dim StockFin as integer
Dim X as integer

Conso =12
StockInit =10
PtCom = 5
QE=12
StockFin = StockInit - Conso

if round((PtCom/QE),0)<(PtCom/QE) then
X =round((PtCom/QE),0)+1
else X=round((PtCom/QE),0)
end if

If StockFin < PtCom then
msgbox("Acheter"& X & "fois la quantité"
end if
1
ben13.51 Messages postés 115 Statut Membre 7
 
Round c pour faire des arrondis
Au lieu de faire plusieur calcul pour vérifier le si achat suffi on ne fait qu'un seul calcul...
essaye ça, ça devrai marcher

Dim Conso as integer
Dim StockInit as integer
Dim PtCom as integer
Dim QE as integer
Dim StockFin as integer
Dim Achat as integer

for i = 2 to 4000

Conso =sheets("NomDeLaFeuille").cells(i,5)

StockInit = sheets("NomDeLaFeuille").cells(i,4)

PtCom = sheets("NomDeLaFeuille").cells(i,3)

QE=sheets("NomDeLaFeuille").cells(i,2)

StockFin = StockInit - Conso

If StockFin < PtCom then
if round(((PtCom-StockFin)/QE),0)<((PtCom-StockFin)/QE) then
Achat =(round(((PtCom-StockFin)/QE),0)+1 )*QE
else Achat=(round(((PtCom-StockFin)/QE),0))*QE
end if
end if
Sheets("NomDeLaFeuille").cells(i,6)=Achat

sheets("NomDeLaFeuille").cells(i,7)=StockFin+Achat
1
lolita
 
rebonjour,tout d'abord je vous remercie pour votre aide ,j'ai pas compris ce que vous m'avez écrit ,c quoi round , et pourquoi vous avez mis ptcmd/QE, et j'ai mis ça sur excel 2007 mais malheureusement ça marche pas .en fait j'ai plusieurs colonnes la première c pour les num articles ,la deuxième c pour QE la 3 c por ptcmd ,la 4 c pour le stock initiale de chaque article ,la 5 c pour la consommation , la 6 c pour les achats et enfin la 7 c pour le stock final.je pense que j'ai pas besoin d'un msgbox parceque je ne veux pas afficher de message mais je veux calculer le stock final et les achats .j'éspère que vous avez compris ce que je veux faire, bon je récapitule:
si le stock initial-consommation<ptcmd là on achète un multiple deQE( n*QE )sinon on achète rien
on essaye pour n=1 si le stock final calculé pour n=1>ptcmd on achète QE et on garde ce stock final
sinon on achète 2*QE et on revérifie la condition du stock finale et ainsi de suite
et on doit faire ça pour tous les articles.
je vous remercie infiniment a+.
0
lolita
 
allo est ce que quelqu'un pourrait me répondre svp.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ben13.51 Messages postés 115 Statut Membre 7
 
Allo... ça y est j'ai répondu... il faut pas s'inpatienter comme ça ;)
0
lolita
 
re,
exusez moi pour mon impatience c juste que je stresse un peu et mille merci pour votre aide.
j'ai mis l'algo que vous m'avez envoyé , il y a un message d'erreur qui c affiché "instruction incorrecte à l'éxtérieur d'une procédure" et l'instruction for est soulignée ,ensuite j'ai mis sub test() mais malheureusement un autre message d'erreur s'est affiché "incompatibilité du type" j'ai changé les integer en double mais ça marche tjrs pas .que dois-je faire svp?
a+
0
lolita
 
re ,:) c encore moi;)
ça marche mais ça n'effectue pas tous les calculs et il y a un message d'erreur de type"dépassement de capacité",
que dois-je faire svp?
0
lolita
 
re , merci beaucoup ça a marché:)
0