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