Afficher un message en fonction d'un pourcentage

Bonjour à tous,

Je souhaite afficher un message en fonction d'un pourcentage dans la colonne H de la feuille1.

Le message correspondant est extrait d'un tableau de messages situé dans la feuille2.

Le tableau de messages contient aussi les fourchettes de pourcentage admises pour chaque catégorie, avec le classement en vert, jaune ou rouge selon des conditions à respecter.

Cependant, pour certaines catégories, le classement vert, jaune ou rouge est inversé.

Je cherche une formule d'évaluation généralisée pour afficher le message correspondant au fourchette admise dans le tableau de feuille2, en prenant en considération que le classement peut être inversé pour certaines catégories.

Merci d'avance pour votre aide.

17message-test.xlsx (14.73 Ko)

Bonsoir,

Quand on imbrique des Si(), il faut simplement les ordrer en ascendant ou décroissant, les (>10 et >5 sont inutiles) :

Si(>10 sinon Si(>5 sinon Si(>0 sinon AV) ou AV correspon aux valeurs <=0 qu'il est inutile de préciser

Voici la formule pour la ligne d'épargne :

=SI(G6>10%;Feuil2!H2;SI(G6>5%;Feuil2!I2;SI(G6>0%;Feuil2!J2;Feuil2!K2)))

C'est plus simple et plus efficace que ta formule

Benead

Bonjour à tous,

Merci Benead pour ta réponse.

J'ai fait un nouvel essai avec une fonction personnalisée, mais je continue d'obtenir l'erreur #VALEUR!

Je vous remercie d'avance pour votre aide.

re,

on ne peut pas faire de choses comme cà dans une fonction personnalisée, donc c'est une macro (qui est lancé par des évents)

salutations, Bart aka Cow18

Bonsoir BsAlv,

Merci, j’apprécie ta contribution.

Je vais faire des tests.

BsAlv bonsoir,

le tableau est blanc, il y a un Select sur sColEntete, mais cette variable n'est définie nu part...

@ bientôt

LouReeD

Bonjour BsAlv, LouReeD, le forum,

J'ai essayé de modifier le code et de traiter l'évaluation de l'objectif séparément.

bonjour,

je ne crois pas que votre construction réactive bien les events en cas d'erreur, parce que l'erreur se trouve dans la macro "EvaluationAffichageMessage". Donc il faut éviter ce "application.EnableEvents=True/false", par exemple en regardant seulement 11 colonnes du tableau.

Private Sub Worksheet_Change(ByVal Target As Range)

    ' Vérifier si la plage modifiée intersecte la table TbEval
    If Not Intersect(Target, Me.ListObjects("TbEval").DataBodyRange.Resize(, 11)) Is Nothing Then EvaluationAffichageMessage

End Sub

Bonjour BsAlv,

Effectivement, j'ai ajouté :

Application.EnableEvents=True/false

Pour éviter que la macro tourne en boucle à chaque fois que l'événement se déclenche.

on n'a pas besoin de cet "application.enableEvents" quand on ne regarde que les 11 premières colonnes et par conséquence on ne peut pas tourner en boucle. Donc en cas d'erreur, les évents sont encore toujours "VRAI"

Rechercher des sujets similaires à "afficher message fonction pourcentage"