Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction à appliquer selon un nom dans une cellule

Romain18

XLDnaute Nouveau
Bien le bonjour,

Malgré une recherche sur le forum, il me semble ne pas avoir trouvé de réponse à ce sujet.

Dans la colonne A:A j'ai une liste déroulante pour un choix de 11 type d’équipements différents:
Equipement_1, Equipement_2, etc....

Dans la colonne E:E (entre les 2 j'ai des valeurs qui serviront aux formules), je dois calculer l'émission de chaleur de l'équipement dont la formule mathématiques dépend du type d'équipement. Pour 11 types d'équipements, j'ai 9 formules différentes.

Même si, avec la fonction SI(Axx="Eqp1";fct;si(Axx="Eqp2";fct;.....) doit pouvoir s'appliquer j'aimerais savoir si il existe une façon différente.

P.S.: je pense qu'en VBA c'est possible, étant plus que novices, j'aimerais éviter cela mais si pas d'autres choix possibles alors let's go VBA

par avance, merci,

Cdt,
 

Romain18

XLDnaute Nouveau
Salut JHA,

Merci pour la rapidité de la réponse.

Tu trouveras ci-après un brouillon du tableau que je souhaite faire.


En B se trouve le type d'équipements
De C à E, des infos pour les calculs
En F les calculs
En G, les formules utilisées.

Merci
 

Pièces jointes

  • Classeur2.xlsx
    10.8 KB · Affichages: 43
  • Classeur2.xlsx
    10.8 KB · Affichages: 30

chris

XLDnaute Barbatruc
Bonjour

Si cela est limité à 3 formules différentes qui semblent liées à 3 cas,
un tableau avec les équipements et 2 coeff avec une formule adapté doit marcher : voir ci-joint.

Sinon il faut un tableau de formules et des noms dont un en EXCEL4 utilisant EVALUER il me semble

Edit : c'est EVALUER pas EVALUATE donc corrigé + exemple joint
 

Pièces jointes

  • Equipements.xlsx
    13 KB · Affichages: 34
  • EvaluerFormule.xlsm
    10.8 KB · Affichages: 39
Dernière édition:

ODVJ

XLDnaute Impliqué
Bonjour à tous,

même principe que chris :
=C10*SI(EQUIV(B10;liste;0)<=6;D10/100*(1-0,9*((EQUIV(B10;liste;0)=3)+(EQUIV(B10;liste;0)=4)>0));(EQUIV(B10;liste;0)=7)*(11-E10)+(EQUIV(B10;liste;0)=8)*0,2)

avec liste nom défini par :
={"Main Propulsion Diesel Engine";"Diesel Generator Engine";"Boiler";"Thermal Fluid Heater";"Steam Pipe";"Condensate Pipe";"Electrical Air-cooled Generator";"Electrical installation";"Exhaust Pipe including Exhaust gas-fired Boiler";"Hot Tank";"Other Component"}

cordialement
 

Romain18

XLDnaute Nouveau
Salut OVDJ & Chris,

Merci pour l'astuce et pour le fichier qui fonctionne parfaitement. Par contre j'avais pas mis toutes les formules et en voulant ajouter les manquantes, je me suis aperçu que je ne trouvais pas ta fonction =resultat sous VBA.
 

chris

XLDnaute Barbatruc
Bonjour

Regarde ma remarque en H5 : il n'y a pas de VBA juste une fonction Excel 4 dans le nom.

On pourrait d’ailleurs aussi s'y référer en VBA...

Mais il te suffit d'ajouter une formule (ou modifier) et =Resultat la calculera...
 

Romain18

XLDnaute Nouveau
Bonjour Chris,

Bien noté. Après effectivement en VBA serait la façon la plus approprié car j'avais affiché les formules dans mon fichier excel pour faciliter la lecture sur le forum

En tout cas, beau boulot!

Encore merci!
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…