Probleme similaire

Résolu
philric Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je cherche a réaliser une macro qui multiplierais un prix de base par un coefficient et selon la valeur du prix de base
je m'explique et pour faire simple:
j'ai un tableau avec en colonne E des prix d'achats
en colonne F des prix de ventes qui doivent être calcule en fonction de la valeur du prix d'achat
si le prix d'achat de 0.01 a 50 on applique cette formule (E1*2.4*1.2)
si le prix d'achat de 50.01 a 100 on applique cette formule (E1*1.7*1.2) si le prix d'achat de 100.01 a 250 on applique cette formule (E1*1.5*1.2) si le prix d'achat de 250.01 a 500 on applique cette formule (E1*1.4*1.2) si le prix d'achat de 500.01 et plus on applique cette formule (E1*1.3*1.2) et il sera copie en cellule F1 correspondante (même ligne)
et ainsi de suite pour toutes les lignes du fichier qui pourra évoluer en nombre de lignes,
y a t'il dans le salle quelqu'un qui peut m'aider les macros ne sont pas ma matière de prédilection



6 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

Comme tes écrats sont réguliers tu peux mettre en F1 :
=E1*CHOISIR(MIN(ENT((E1-0.01)/50)+1;3);2.4;1.7;1.5)*1.2
et recopier vers le bas.

eric
1
Paf
 
Bonjour

avec des SI imbriqués ça pourrait marcher aussi ?

en F1
=Si(E1<=50;E1*2.4*1.2;si(E1<=100;E1*1.7*1.2;si(E1<=250;E1*1.5*1.2;si(E1<=500;E1*1.4*1.2;E1*1.3*1.2))))
1
Paf
 
bonjour,

une macro est elle obligatoire ?, une formule avec des SI imbriqués suffirait.
....
0
philric Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
merci eric ca marche parfaitement mais pas au delà d'une valeur de 150, peut tu m'expliquer la formule ca me permettra de l'utiliser peut être dans d'autre situations et aussi de comprendre ce qui cloche au dessus de 150
phil
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
=E1*CHOISIR(MIN(ENT((E1-0.01)/50)+1;3);2.4;1.7;1.5)*1.2

- le 3 en gras indique le nombre de valeurs que tu as défini derrière : 2.4;1.7;1.5

- ENT((E1-0.01)/50)+1 retourne la tranche de 50 concernée

- MIN(ENT((E1-0.01)/50)+1;3) prend la plus petite valeur entre la tranche et le nombre maxi de tranches définies (3 ici)

- CHOISIR(x;2.4;1.7;1.5) retourne la xième valeur de la liste définie ensuite (2.4;1.7;1.5)

J'espère avoir été clair ;-)

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
philric Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai 5 coef différents voir 1er post donc j'ai mis =E1*CHOISIR(MIN(ENT((E1-0.01)/50)+1;5);2.4;1.7;1.5;1.4;1.3)*1.2
mais j'ai toujours le problème au dessus de 150 j'ai des erreurs
de 150 a 200 il utilise le coef 1.4 au lieu de 1.5
de 200 a 500 il utilise 1.3 au lieu de 1.5 (>250) et 1.4(>500)
mais a partir de 500 c'est bon
phil
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
J'avais lu trop vite, je pensais que toutes les tranches étaient de 50, désolé.
met plutôt :
=E1*RECHERCHE(E1;{0;50.01;100.01;250.01;500.01};{2.4;1.7;1.5;1.4;1.3})*1.2

ou si tu veux on peux définir une table à part qui sera plus facile à maintenir si il y a des mises à jours : exemple

eric
0
philric Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Eric je n'arrive pas a faire fonctionner ta formule par contre celle de paf est ok pas de problèmes, merci de m'avoir aidé
phil
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Pas de problème, tu es encore loin de la limite des 7 fonctions imbriquées.
En même temps tu avais quand même le fichier exemple à consulter, difficile de faire mieux pour expliquer...
eric
0