Formule VBA prend nombre entier

TheProdigy

XLDnaute Impliqué
Bonjour,

Je me joins à vous demander si possible de rendre la formule suivante une formule qui prend en charge les 3 chiffres après la virgule. Car elle ne prend que le chiffre entier même si je saisis 2 chiffres après la virgule dans la colonne price
Le prix du stock AAA ligne 3 E:3 est 501 si je saisis 501,93 la formule affiche le même résultat qui est 12525 en I:12 alors qu'elle doit afficher 25*501,93=12.548,25

Merci
 

Pièces jointes

  • Erreur1.xlsm
    23.7 KB · Affichages: 32

TheProdigy

XLDnaute Impliqué
Bonjour @pierrejean , bonjour @Lone-wolf , bonjour le forum,

La finalité est de chercher le prix le plus ancien d’achat qui correspond au stock vendu en question

Si je vends« Sell » une quantité « Qty » d’un article « Stock » la formule va à l’historique elle commence par le plus ancien achat « Buy » de l’article en question et elle prend son prix et le multuplie à la quantité correspondante à « Sell ».

- Le cas le plus facile est quand la quantité de vente « Sell » de l’article = la quantité la plus ancienne d’achat « buy » du même article, dans ce cas le résultat de la formule (Coût de la vente) « Cost vale » = nombre d’achat « Qty »* prix d’achat « Price »

- Le cas le plus difficile est quand la quantité vendue est supérieur au premier Achat de l’article en question, dans ce cas la formule fait la somme des quantités des lignes d’achat de l’article en question du plus ancien jusqu’au plus récent jusqu’à arriver à la ligne pour laquelle le total est égale à la quantité que je veux vendre « Sell ». Chaque quantité « Qty » prise avec son prix le total pondéré des multiplications donne mon coût de vente « Cost Value »

Bien sûr, il ne faut pas oublier que lors d’une seconde vente du même article la formule ne prend pas en considération le prix d’achat des lignes déjà sortis du stock ce qui est logique elle applique la même logique que je vous ai citée avant. La finalité est de valoriser mon stock vendu par le prix le plus ancien d’achat

Voilà, j’espère que j’ai explicité ma demande et je vous remercie d’avance pour vos essais afin de résoudre mon problème.
 
Dernière édition:

TheProdigy

XLDnaute Impliqué
Bonjourtout le monde,

@Lone-wolf @pierrejean , La formule est correcte. sauf que quand je tape un chiffre avec une virgule elle calcule faux mais si je tape un chiffre avec un point elle calcule correctement. Je ne sais pas comment faire pour que le code accepte mon format avec ",''.

Merci de m'aider.
 

Pièces jointes

  • Error1.xlsm
    24 KB · Affichages: 23

Lone-wolf

XLDnaute Barbatruc
Re

@adilprodigy

Une méthode: CTRL+H du clavier (rechercher-remplacer) et tu remplace le point par la virgule. J'ai tester et ça marche.

remplacer.gif
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Pour que la fonction fifoval fonctionne quel que soit le séparateur décimal de l'ordi remplacer la virgule par le point ici :
Code:
                Case "Buy" ' In case of byuing
                    qstr = qstr & Replace(Cells(i, 4), ",", ".") & "," '???????????
                    pstr = pstr & Replace(Cells(i, 5), ",", ".") & "," '???????????
L'auteur aurait quand même pu le prévoir !

Fichier joint.

A+
 

Pièces jointes

  • Error(1).xlsm
    30 KB · Affichages: 15

job75

XLDnaute Barbatruc
Bonjour adilprodigy, Lone-wolf, Pierre, le forum,

Les remplacements de mon post #12 précédent n'étaient pas suffisants.

Dans ce fichier (2) j'ai continué pour tous les calculs de qstr et pstr (variables String).

Bien noter que les "Qty" en colonne D peuvent être maintenant des nombres décimaux.

Je vous laisse le soin de vérifier que les calculs sont bien ceux que vous voulez ("Yes" en N2).

Bonne journée.
 

Pièces jointes

  • Error(2).xlsm
    30.7 KB · Affichages: 19

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT