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

XL 2016 Décaler un courbe de référence en fonction du résultat d'une somme

Yannto

XLDnaute Nouveau
Bonjour,
Ne trouvant pas dans le forum les informations nécessaires pour réaliser mon opération, j'ai ouvert ma première discussion.

Voici mon problème:
J'ai 16 valeurs que je compare à une courbe de référence (16 valeurs également)

1- Je calcul pour chaque valeurs (donc 16 fois l'opération), "Valeur - valeur de la courbe de référence" et garde le résultat uniquement si il est positif.
2- De ces 16 résultats (les valeurs négatives valent "0") je fais l'addition.
3- Si cette addition est supérieur à 32
3.1 - je décale ma courbe de référence de "-1" et recalcule "Valeur - valeur de la courbe de référence décalée de -1" et garde le résultat uniquement si il est positif (point 1).
3.2- De ces 16 résultats (les valeurs négatives valent "0") je fais l'addition.
etc...
Je répète l'opération de décalage de la courbe tant que la somme est supérieur à 32.

Si la somme est juste inférieur à 32 (ou égale à 32), je m'arrête et garde comme résultat la courbe de référence décalée.

Ça marche très bien avec un tableau (voir fichier joint), mais j'aimerais le faire sans tableau (VBA ou autre solutions).

Si quelqu'un à une idée ou un début de piste, je suis preneur.

Un grand merci par avance pour toutes réponses (j'adore les critiques quand elles sont constructives).
 

Pièces jointes

  • Déplacement courbe de référence.xlsx
    30.6 KB · Affichages: 6

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je ne sais pas si cela peut aider somme en validation matricielle
VB:
=SOMME(SI(($U4:$AJ4-$U$3:$AJ$3)>=0;$U4:$AJ4-$U$3:$AJ$3))

JHA
 

Pièces jointes

  • Déplacement courbe de référence.xlsx
    37.6 KB · Affichages: 3

Yannto

XLDnaute Nouveau
Un grand merci à vous deux et pour la réactivité c'est magique.

#JHA Merci pour la formule et le fichier, ça raccourcis le tableau.

#sylvanu C'est effectivement une solution comme cela que je recherche.
Cependant je n'arrive pas a arrêter la macro décaler si le TotalDiff est inférieur ou égale à 32 (à chaque appuie sur "Calculer rapidement" la courbe calculée et TotalDiff se modifie). Je n'arrive pas à supprimer le premier Décale de la Sub Calcul ().
D'autres part, est-il possible de garder la ligne "Courbe de référence" intacte et de rajouter en dessous une ligne "Courbe de référence décalée" qui se calcule en fonction des Valeurs à comparer. Cela m'éviterais de coller à chaque fois la "courbe de référence" pour chaque calcul lancé.

J'ai bien essayé de triturer les macros de rajouter un nom pour la plage "courbe de référence" (statique) et de faire référence à cette plage dans tes macros, mais mes connaissances dans ce domaine sont trop limitées.... et j’échoue à chaque fois.
 

Yannto

XLDnaute Nouveau
Un grand merci pour avoir rajouté la fonction de test si inférieur à 32.

Pour la question de la courbe de référence (statique) qui m'évite à chaque calcul (chaque fois que mes "Valeurs à comparer" changent) de recoller la courbe d'origine. J'ai simplement rajouté en début de ta Sub Calcul () les lignes pour copier et coller les valeurs de la courbe de référence.

VB:
    [ValCourbeRef].Select
    Selection.Copy
    [ValRef].Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

Comme cela à chaque fois que la Sub Calcul () se lance il y a d'abord un copier coller de la courbe de référence.

Ça à l'air de fonctionner, à voir sur le long terme. Si jamais tu constate un problème, je serais heureux que tu m'en fasse part.

Un énorme merci pour cette aide et surtout la rapidité de tes réponses.
 

Pièces jointes

  • Déplacement courbe de référence(V4).xlsm
    44.3 KB · Affichages: 4

Discussions similaires

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