Probleme similaire
Résolu
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
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
-
ContributeurBonsoir,
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 -
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)))) -
bonjour,
une macro est elle obligatoire ?, une formule avec des SI imbriqués suffirait.
.... -
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-
Contributeur=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
-
-
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-
ContributeurJ'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
-
-
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