Bonjour à tous,
dans le cadre de mon emploi actuel, il me faut réaliser une feuille dans laquelle il est fait appel à des prix dégressifs.
L'idée de départ des personnes ici était de partir sur la bonne vieille idée des paliers et de créer autant de tableaux que nécessaires où aller rechercher l'information.
Après quelques recherches, il me semble que c'est, en effet, la solution proposée partout.
Néanmoins, aussi bien dans les tableaux que j'ai pu voir ici que dans ceux sur internet, il n'était pas rare de rencontrer le problème suivant :
où nous pouvons voir qu'au passage de palier, il devient moins cher d'acheter une pièce en plus.
Quitte à vouloir faire une courbe de prix, autant faire une "vraie" courbe et ne plus passer par des tableaux. J'ai donc écrit une petite fonction automatisant cela. J'aurais voulu savoir ce que vous en pensiez et, pour ceux étant souvent confrontés aux prix dégressifs, d'éventuels conseils sur la réalité de terrain pour mieux y correspondre.
Voici l'aide que je fournis concernant l'utilisation :
et le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Function JGCOURBE(Quantite, Prix, Prix_Min, Quantite_Max, Format, Optional paliers) ' Déclaration variables ' Je ne déclare pas PPP et ESP dans les variables globales car elles font appel à un argument optionnel. La déclaration de ces variables doit donc se trouver ' au sein des conditions où la variable "paliers" est appelée. ' Déclaration variables ' ' Déclaration PiJe ne déclare pas PPP et ESP dans les variables globales car elles font appel à un argument optionnel. La déclaration de ces variables doit donc se trouver ' au sein des conditions où la variable "paliers" est appelée. Pi = WorksheetFunction.Pi() ' Déclaration Pi ' Calcul de base, au-delà des limites de la dégression. If Quantite >= Quantite_Max Then ' Si la quantité est supérieure ou égale à la quantité maximale le calcul sera le suivant : JGCOURBE = Quantite * Prix_Min End If ' Calcul selon méthode 1 : courbe If Quantite < Quantite_Max And Format = 1 Then ' Si la quantité est inférieure à la quantité maximale et le format égale à "1" alors c'est le type cosinusoïdale qui s'applique JGCOURBE = Quantite * (Prix_Min + ((Prix - Prix_Min) * Cos((90 / (Quantite_Max - 1) * (Quantite - 1) / 180) * Pi))) End If ' Calcul selon méthode 2 : linéaire If Quantite < Quantite_Max And Format = 2 Then ' Si la quantité est inférieure à la quantité maximale et le format égale à "2" alors c'est le type linéaire qui s'applique JGCOURBE = (Prix - ((Prix - Prix_Min) / Quantite_Max) * (Quantite - 1)) * Quantite End If ' Calcul selon méthode 3 : paliers 1 If Quantite < Quantite_Max And Format = 3 Then ' Si la quantité est inférieure à la quantité maximale et le format égale à "3", alors c'est un premier type par paliers avec le nombre de paliers indiqué. PPP = (Prix - Prix_Min) / paliers ' Déclaration Prix par palier ESP = Quantite_Max / paliers ' Déclaration Espacement entre paliers For i = 0 To paliers ' Nous faisons une boucle qui passe par tous les paliers et vérifie si la quantité voulue est sur ce palier ou non. Si elle y est nous appliquons le calcul. If Quantite > i * ESP And Quantite <= (i + 1) * ESP Then ' La différence entre paliers type 3 et 4 est ici. JGCOURBE = (Prix - (i * PPP)) * Quantite End If Next End If ' Calcul selon méthode 4 : paliers 2 If Quantite < Quantite_Max And Format = 4 Then ' Si la quantité est inférieure à la quantité maximale et le format égale à "4", alors c'est un second type par paliers avec le nombre de paliers indiqué. PPP = (Prix - Prix_Min) / paliers ' Déclaration Prix par palier ESP = Quantite_Max / paliers ' Déclaration Espacement entre paliers For i = 0 To paliers If Quantite >= i * ESP And Quantite < (i + 1) * ESP Then JGCOURBE = (Prix - (i * PPP)) * Quantite End If Next End If End Function
Partager