Calcul de degrés-jour bi-énergie (complexe)

  • Initiateur de la discussion Armand Paré
  • Date de début
A

Armand Paré

Guest
Bonjour, je tente d'intégrer la formule suivante dans un chiffrier Excel pour trouver les degrés-jour pour ma table de bi-énergie.

mdegre= degre-jour de la journée
z_Degre = degree-jour pour hier

mdegre est calculé de la manière suivante:
=SI((((Degre_Max_jour + Degre_Min_jour)/2)-15)<=3;3;(((Degre_Max_jour + Degre_Min_jour)/2)-15))


Voici la formule

If mDegre - z_Degre > 22

Do Case
Case mDegre - z_degre = 23
mDual = ((mdegre-z_degre)-22)*2
Case mDegre-z_degre = 24
mDual = ((mdegre-z_degre)-22)*2.1
Case mDegre-z_degre = 25
mDual = ((mdegre-z_degre)-22)*2.15
Case mdegre-z_degre = 26
mDual = ((mdegre-z_degre)-22)*2.2
Case mdegre-z_degre = 27
mDual = ((mdegre-z_degre)-22)*2.3
Case mdegre-z_degre = 28
mDual = ((mdegre-z_degre)-22)*2.4
Case mdegre-z_degre = 29
mDual = ((mdegre-z_degre)-22)*2.45
Case mdegre-z_degre = 30
mDual = ((mdegre-z_degre)-22)*2.5
Case mdegre-z_degre = 31
mDual = ((mdegre-z_degre)-22)*2.6
Case mdegre-z_degre = 32
mDual = ((mdegre-z_degre)-22)*2.7
Case mdegre-z_degre = 33
mDual = ((mdegre-z_degre)-22)*2.75
Other
mDual = (mdegre-z_degre)
Endcase
Endif

Cordialement

Armand
 
Z

Zon

Guest
Salut,

Pas sûr d'avoir tout compris, mais tu peux créer des fonctions personnalisées en les mettant dans un module standard; Do case je ne connais pas en VBA.

function Mdegre(Degre_Max_jour, Degre_Min_jour)
mdegre=iif(((Degre_Max_jour + Degre_Min_jour)/2)-15)<=3;3;(((Degre_Max_jour + Degre_Min_jour)/2)-15))
end function

function Mdual(M_degre,Z_degre)
select case M_degre-Z_degre
case 23:mdual=2
'..à compléter
case 33:mdual=30.75 ' (33-22)*2.75
end select
end function

Tu peux t'en servir soit depuis une procédure classique en VBA soit dans une feuille de calcul.

A+++
 
A

Armand Paré

Guest
Merci Zon,

Do Case et Case c'est du pareil au même. Une fonction que je ne conaissais pas avant cette semaine... Et pourtant très utile.

Finalement, j'ai utilisé en parti, ta formulation dans FileMaker et ça marche parfaitement. En fait, j'ai utilisé la fonction "Choix" ou "Choice".

Voici de que ça donne:
mdegre est le cumulatif des degrés-jour et czdegre est le cumulatif de j-1(la veille)

TEST( Total_mdegre - czdegre < 22 ; 0 ;
CHOIX(Total_mdegre - czdegre >33 ;
((Total_mdegre - czdegre) - 22 ) *
CHOIX(Total_mdegre - czdegre -23;
2;
2.1;
2.15;
2.2;
2.3;
2.4;
2.45;
2.5;
2.6;
2.7;
2.8 );
Total_mdegre - zdegre))

Merci encore

Armand
 

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux