Macro pour retenir un prix selon la tranche Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
abd2010
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 16 novembre 2019

Message par abd2010 » 18 novembre 2019, 11:23

Bonjour ,
J'aimerai une macro qui lorsqu'on saisit une quantité, en besoin exprimé : si la quantité saisie est < tranche 1, qu'elle retient le prix révisé 1, sinon si tranche 1 <= quantité saisie < tranche 2, qu'elle retient le prix révisé 1; etc jusqu'à la fin, si quantité saisie >= tranche 20, qu'elle retient le prix révisé 20.

De plus si, pour un "NOI article MAR" donné, il existe plusieurs marchés (Numéro marché MAR), qu'on retienne le marché le plus cher.

Merci d'avance pour vos aides
tab.xlsx
(31.92 Kio) Téléchargé 10 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'454
Appréciations reçues : 747
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 novembre 2019, 11:58

Bonjour et bienvenue,

merci d'avoir posté un fichier ...
le résultat doit être porté sur quelle colonne ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'454
Appréciations reçues : 747
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 novembre 2019, 12:05

On peut le faire sans VBA avec une formule matricielle (à valider par Ctrl+Maj+Entrée)
=SIERREUR(INDEX(Tableau1[@[Prix révisé 1]:[Prix révisé 20]];EQUIV([@[Besoin Exprimé]];
SI((Tableau1[@[Tranche 1]:[Tranche 20]]<>"")*(MOD(COLONNE(Tableau1[@[Tranche 1]:[Tranche 20]]);2)=1);Tableau1[@[Tranche 1]:[Tranche 20]];9^9);1));"")
Modifié en dernier par Steelson le 20 novembre 2019, 00:26, modifié 1 fois.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 16 novembre 2019

Message par abd2010 » 18 novembre 2019, 13:42

Merci de votre précieux aide.

J'aimerai en plus que si l'on saisisse une quantité (besoin exprimé) < à la tranche 1, qu'il nous retient, le prix de la tranche 1.

Par exemple à la première ligne, si je mets "35"(besoin< tranche1), il retient rien, alors qu'il devrait prendre le prix affecté à la tranche 1.

Merci encore !
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'454
Appréciations reçues : 747
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 18 novembre 2019, 17:12

C'est pas super-logique, mais une solution rapide est de mettre la quantité 0 pour la tranche 1. Parce que in fine le seuil de la tranche 1 ne sert pas à grand chose !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 16 novembre 2019

Message par abd2010 » 19 novembre 2019, 09:10

Merci ,mais j'ai constaté qu'avec votre formule si je mets 1500 en besoin à la première ligne, il me ramène pas le bon prix.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'454
Appréciations reçues : 747
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 19 novembre 2019, 11:19

Si, mais le problème est qu'en K2 il est écrit 1 500 avec un espace (donc du texte) et non 1500 (que tu peux mettre avec un format séparateur des milliers).
Modifié en dernier par Steelson le 20 novembre 2019, 00:26, modifié 1 fois.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 16 novembre 2019

Message par abd2010 » 19 novembre 2019, 11:59

ça marche!
Dernière question, si je tape 400 dans la première ligne au lieu de ramener le prix de 6,83; il amène le prix précédent 6,95.

Pouvez vous m'ajustez ça s'il vous plait
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'454
Appréciations reçues : 747
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 19 novembre 2019, 12:59

En effet !! correction
=SIERREUR(INDEX(Tableau1[@[Prix révisé 1]:[Prix révisé 20]];EQUIV([@[Besoin Exprimé]];SI(Tableau1[@[Tranche 1]:[Tranche 20]]<>"";(Tableau1[@[Tranche 1]:[Tranche 20]]<>"")*(MOD(COLONNE(Tableau1[@[Tranche 1]:[Tranche 20]]);2)=1)*Tableau1[@[Tranche 1]:[Tranche 20]];9^9);1));"")
désolé, je n'ai même pas compris pourquoi ce fonctionnement curieux !!

J'ai tout formaté en standard ... ce qui permet de voir les nombres saisis sous forme de texte (calés à gauche).
Modifié en dernier par Steelson le 20 novembre 2019, 00:26, modifié 1 fois.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 16 novembre 2019

Message par abd2010 » 19 novembre 2019, 13:30

A nouveau si je saisie à la première ligne: 1 comme besoin il m'affiche 400 comme Prix.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message