Bonjour,
je dispose d'un fichier qui a vocation à déterminer quelle est la meilleure quantité à choisir en fonction de tranches de prix.
Pour cela je rentre en premier lieu mon besoin exprimé( colonne C ) et ensuite ça fait une recherche du besoin minimum à commander (besoin réel) et du besoin optimisé par rapport aux coûts.
Exemple en ligne 9 du fichier
besoin exprimé de 6
acquisition possible à l'unité donc le besoin réel est de 6
Mais finalement moins onéreux d'en commander 500
Pour réaliser les calculs on a fait 2 macros fonctions
Le problème est que le fichier source contient 671000 lignes et que lorsque l'on rentre notre besoin exprimé ça prend trois plombes 😵
Si vous avez une astuce pour améliorer la vitesse de traitement, je suis preneur 🙂
Merci
je dispose d'un fichier qui a vocation à déterminer quelle est la meilleure quantité à choisir en fonction de tranches de prix.
Pour cela je rentre en premier lieu mon besoin exprimé( colonne C ) et ensuite ça fait une recherche du besoin minimum à commander (besoin réel) et du besoin optimisé par rapport aux coûts.
Exemple en ligne 9 du fichier
besoin exprimé de 6
acquisition possible à l'unité donc le besoin réel est de 6
Mais finalement moins onéreux d'en commander 500
Pour réaliser les calculs on a fait 2 macros fonctions
VB:
Function prix(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
If Cells(cel.Row, i) > cel Or Cells(cel.Row, i) = "" Then Exit For
prix = Cells(cel.Row, i + 1)
Next
End Function
Function optimum(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
If Cells(cel.Row, i + 2) < cel.Offset(0, 2) And Cells(cel.Row, i + 2) <> 0 Then optimum = Cells(cel.Row, i)
Next
optimum = Application.Max(optimum, cel.Value)
End Function
Le problème est que le fichier source contient 671000 lignes et que lorsque l'on rentre notre besoin exprimé ça prend trois plombes 😵
Si vous avez une astuce pour améliorer la vitesse de traitement, je suis preneur 🙂
Merci