Modification de formule

morganSOCO

XLDnaute Junior
Bonjour XLDnautes !

Voilà, j'ai un logiciel qui marche plutôt bien, seulement, la formule finale n'est pas totalement vraie. Je m'explique: la formule de calcul d'isolement requis compare les 2 plus petites valeurs et applique une correction selon la différences des 2 valeurs. Or, TOUTES les valeurs doivent être comparées ... Je joint un exemple pour expliciter mes propos et l'arrêté utilisé pour expliquer la méthode.

"la valeur minimale de l'isolement à retenir est calculée de la façon suivante à partir de la série de valeurs. les 2 valeurs les + faibles sont comparées. la correction issue du tableau ci-dessous est ajoutée à la valeur la + élevée des 2.

ecart correction
entre 0 et 1 +3
entre 2 et 3 +2
entre 4 et 9 +1
> 9 0

S'il n'y a que deux valeurs la valeur calculée a l'aide du tableau est l'isolement minimal. S'il y a plus de 2 valeurs, la valeur calculée a l'aide du tableau pour les 2 + faibles isolements est comparée de façon analogue à la plus faible des valeurs restantes. le processus est réitéré jusqu'à ce que toutes les valeurs de la série soient ainsi comparées."

Dans mon exemple il n'y a que 3 valeurs mais il se peut qu'il y en ai plus ...

Cordialement,
Morgan =)
 

Pièces jointes

  • 2.xls
    101 KB · Affichages: 41
  • 2.xls
    101 KB · Affichages: 45
  • 2.xls
    101 KB · Affichages: 47

Venitien

XLDnaute Occasionnel
Re : Modification de formule

Ok, j'ai lu ta demande et regardé ton exemple, en fait si on généralise, tu veux que la formule :
- compare toute les valeurs de la plage entres-elles, sauf la plus grande.
- et qu'elle compare le résultat obtenu à la plus grande valeur de la plage

C'est ça?

Une chose que je ne comprends pas, tu à mis : "il faudrait comparer 39 et 32 (et donc ça donnerai 39-32=7, écart de 7 donc on a 40)"... alors jusqu'à 39-32=7, je comprends... mais ensuite le "écart de 7 donc on à 40"...je suis dans les choux là, pourquoi 40?
 

morganSOCO

XLDnaute Junior
Re : Modification de formule

RE

En fait pour commencer on compare les deux plus petite, une fois fait on compare le résultat de la première comparaison avec la valeur la plus petite qu'il reste et ainsi de suite ...

La correction vient du tableau. 39-32=7 il y a donc un écart de 7 entre les 2 + petites valeurs, or d'après le tableau s'il y a un écart entre 4 et 9 il faut ajouter 1 à la valeur la plus grande des 2, donc à 39 dans l'exemple.
 

Venitien

XLDnaute Occasionnel
Re : Modification de formule

ok j'ai compris, essayes

Code:
k = N2
   For e = k To N2
   Range("P" & d).FormulaR1C1 = "=MAX(30,IF(COUNT(RC[-1]:R[e]C[-1])<2,MAX(RC[-1]:R[e]C[-1]),SMALL(RC[-1]:R[e]C[-1],2)+VLOOKUP((SMALL(RC[-1]:R[e]C[-1],2)-SMALL(RC[-1]:R[e]C[-1],1)),R28C12:R31C13,2,1)))"
    Next e
   k = k + N2

à la place de

Code:
Range("P" & d).FormulaR1C1 = _
        "=IF(LARGE(RC[-1]:R[3]C[-1],1)-LARGE(RC[-1]:R[3]C[-1],2)>3,MAX(RC[-1]:R[3]C[-1]),MAX(RC[-1]:R[3]C[-1])+3)"

Dans la macro de l'autre fois, ça ne marche pas ici car les colonnes ont changé, ta dernnière colonne n'est plus Q mais M. dis moi ce que ça donne, j'ai aucune certitude, j'ai fais ça au jugé...
 

CISCO

XLDnaute Barbatruc
Re : Modification de formule

Bonjour

J'ai l'impression que tu utilises une méthode simplifiée pour cacluler le niveau de bruit en présence de plusieurs sources sonores. Ne serait-ce pas plus simple d'utiliser la relation physique donnant directement le niveau acoustique dans ce cas ?

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Modification de formule

Bonjour

STP, fournis nous un exemple un peu plus long, disons une dizaine de lignes, avec le résultat attendu, et décris plus précisément ton objectif, que je vois dans quelle situaution tu te trouves.

@ plus
 

morganSOCO

XLDnaute Junior
Re : Modification de formule

Venitien,

Ton code ne fonctionne pas il me semble mais je joint la base (sans aucune macro) du logiciel. Repartir de presque zéro nous simplifiera peut-être la tâche. Je souhaiterai d'abord modifier la formule dans la cellule afin qu'elle respecte l'arrêté:
"la valeur minimale de l'isolement à retenir est calculée de la façon suivante à partir de la série de valeurs. les 2 valeurs les + faibles sont comparées. la correction issue du tableau ci-dessous est ajoutée à la valeur la + élevée des 2.

ecart correction
entre 0 et 1 +3
entre 2 et 3 +2
entre 4 et 9 +1
> 9 0

S'il n'y a que deux valeurs la valeur calculée a l'aide du tableau est l'isolement minimal. S'il y a plus de 2 valeurs, la valeur calculée a l'aide du tableau pour les 2 + faibles isolements est comparée de façon analogue à la plus faible des valeurs restantes. le processus est réitéré jusqu'à ce que toutes les valeurs de la série soient ainsi comparées."

Déjà si on arrive a fait ça .. ce sera une grande avancée. Je verrais ensuite pour inclure les macro de zone de sélection et nombre d'infrastructures.
 

Pièces jointes

  • base.xls
    98.5 KB · Affichages: 41
  • base.xls
    98.5 KB · Affichages: 42
  • base.xls
    98.5 KB · Affichages: 41

Venitien

XLDnaute Occasionnel
Re : Modification de formule

MorganSOCO, pour ta formule, tu compare à chaque fois les 2 plus petites valeurs de la série, ou tu compare les valeurs successives?
je veux dire si dans tu as: M11 = 35, M12 = 30 et M13 = 28, tu compares en premier M11 et M12, ou alors M12 et M13 ?
 

morganSOCO

XLDnaute Junior
Re : Modification de formule

Je joins un exemple détaillé.

@ Venitien: Tu compare les 2 plus petites donc pour ton exemple M12 et M13 et la comparaison des 2 donne un nombre, tu compare ce nombre a M11 (si tu n'as que 3 valeurs, si tu en a + tu compare la comparaison à la plus petite valeur restante)
 

Pièces jointes

  • 2.xls
    103.5 KB · Affichages: 33
  • 2.xls
    103.5 KB · Affichages: 40
  • 2.xls
    103.5 KB · Affichages: 29

Venitien

XLDnaute Occasionnel
Re : Modification de formule

ok, pour ma part je partirais su une macro (encore une) pour limiter le nombre de cases. La macro comparerais chacune des valeur et poserait le résultat dans la case...
parce que à part décomposer le calcul en plusieurs étapes, je vois pas comment faire..
 

Discussions similaires

Réponses
3
Affichages
174

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 697
dernier inscrit
BOUZOUALEGH