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+.
Configuration: Windows Vista Internet Explorer 7.0

8 réponses

  1. 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
  2. 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
  3. 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
  4. lolita
     
    allo est ce que quelqu'un pourrait me répondre svp.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. 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
  9. lolita
     
    re , merci beaucoup ça a marché:)
    0