Pb de calcul d'une différence

Fermé
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 - 18 janv. 2016 à 18:02
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 - 28 janv. 2016 à 20:06
Bonjour,
Je fais de nouveau appel à votre aide car je suis confronté à un nouveau problème, explications :

colonne A : nb de jours de l’expérience

colonne B = poids

colonne C : en fonction de certains critères si la cellule C du jour j =0 alors rien, si la cellule = Y alors il faut augmenter l’apport d’eau, si la cellule = Z il faut augmenter l’apport en glucose

colonne D : en fonction de certains critères si la cellule D du jour j = 0 alors rien, si la cellule D=STOP Y alors il faut arrêter l’augmentation d’eau, si la cellule D=STOP Z alors il faut arrêter l’augmentation du glucose.

colonne E: gain/perte de poids

Je recherche donc un moyen d’automatiser le calcul des cellules de la colonne E en sachant que si dans la colonne C apparaissent Z en C4 et C6 (ou Y, le raisonnement est le même) et que dans la colonne D ’STOP Z’ n'apparait qu'en D7 le résultat de gain/perte de poids ne devra se faire que sur la différence de poids constatée entre le poids inscrit au jour où le signal STOP Z est apparu (donc en D7) et le poids inscrit au 1er jour de l'apparition de Z dans la colonne C (donc en C4), donc E7 =B7-B4.
A partir de là et l'expérience continuant (le précédent Z ayant été stoppé par l'apparition d'un STOP Z) si un nouveau Z apparait dans la cellule C30 puis 10 jours plus tard un nouveau STOP Z apparait dans la cellule D40 rebelote le calcul devra se faire entre la valeur du poids de la cellule B40 et la valeur du poids de la cellule B30 (sans prendre en compte d'éventuels Z qui seraient apparus entre temps sur les cellules B30 à B40).

D’avance merci beaucoup pour votre aide
A voir également:

8 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
18 janv. 2016 à 18:16
Bonjour,

Merci de déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et le résultat attendu avec tous les cas pouvant se présenter) sur cjoint.com et coller ici le lien fourni.

eric
1
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
18 janv. 2016 à 20:53
https://www.cjoint.com/c/FAstZCEkHPc

voici pour le lien, j'espère que ce sera compréhensible pour vous.

bien cordialement,
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 18/01/2016 à 22:02
J'comprend rien.
Pourquoi ce n'est pas =B2-B5 en E2 ?
Si tu pouvais contrôler l'ensemble de ton tableau ou reprendre tes explications stp, j'ai l'impression que ça ne colle pas.
Déjà qu'il faut être à jeun complet pour ton truc, n'y rajoute pas d'embûches.
La logique veut qu'on le lise plutôt de bas en haut pour la chronologie ou pas ?
Est-ce que tu peux avoir un Z et un STOP Z sur la même ligne ?
Je ne comprend pas non plus pourquoi l'explication n'est pas la même en E6 et E8.
Et estce-que tu peux avoir plus de 2 Z entre 2 Stop Z ? Si oui ça sera en vba
eric
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
18 janv. 2016 à 22:25
Bon, j'ai fait en considérant qu'il y avait une erreur.
En vba, Alt+F11 pour voir le code module Feuil1
https://www.cjoint.com/c/FAsvy5Cw5fN
eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
18 janv. 2016 à 23:19
merci Eric, je regarderai ça demain mais je ne connais pas le VBA, je vais m'y pencher (car il faut que je puisse reproduire ta formule sur mon tableau excel de travail).
concernant tes questions:
Pourquoi ce n'est pas =B2-B5 en E2 ? => oui erreur de ma part, c'est bien B5
La logique veut qu'on le lise plutôt de bas en haut pour la chronologie ou pas ? => oui
Je ne comprend pas non plus pourquoi l'explication n'est pas la même en E6 et E8.=> en E6 le Z ne doit pas être pris en compte car un Z est apparu plus tôt et est toujours valide (en fait si j'ajoute 10 g de glucose le jour j le jour j+1 (ou j+2 ou j+3) à la nouvelle pesée l'apport initial n'aura pas encore fait effet donc le système me demande une nouvelle dose sauf que tant qu'il n'y a pas un STOP Z qui apparait après ce premier apport je ne dois pas faire de nouvel apport).
En E8 le STOP Z en D8 ne doit pas être pris en compte car il n'y a pas eu de nouveau Z depuis le dernier STOP Z en D7 qui lui stop le Z apparu en C4.

j'espère avoir été plus clair, en tout cas merci beaucoup pour ton aide.
bonne fin de soirée
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
19 janv. 2016 à 11:24
Bonjour,

en E6 le Z ne doit pas être pris en compte car un Z est apparu plus tôt et est toujours valide (en fait si j'ajoute 10 g de glucose le jour j le jour j+1 (ou j+2 ou j+3) à la nouvelle pesée l'apport initial n'aura pas encore fait effet donc le système me demande une nouvelle dose sauf que tant qu'il n'y a pas un STOP Z qui apparait après ce premier apport je ne dois pas faire de nouvel apport)
Pas pris en compte.
Peut-être dans la journée...
eric
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
19 janv. 2016 à 13:29
Désolé mais je ne vois toujours pas bien la différence entre :
= 0 car plus de Y valide (le dernier éyant éte stoppé par STOP Y en D4)
et :
=0 car le Z en C8 ne doit pas être pris en compte ( car apparu entre le Z en C10 et le stop Z en D7
qui sont pour moi 2 façon de dire la même chose :
Il faut au moins un Z entre un Stop Z et son précédent Stop Z pour faire la soustraction, sinon =0
Si tu pouvais donner un exemple où seuls ces 2 cas apparaissent vu que sur celui-ci D6 et D8 sont de toute façon précédés immédiatement du même Stop.
eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
19 janv. 2016 à 21:29
Bonsoir Eric,
je galère vraiment, j'ai essayé de reprendre ton code vba mais n'ayant pas les bases je n'y arrive pas.
Si ce n'est pas trop te demander, si tu refuses je comprendrai et te remercie de toute façon pour l'aide déjà apportée, pourrais tu sur le fichier joint (qui est la copie de mon fichier source) insérer le code qui permettrait d'automatiser les calculs que je souhaite réaliser.
Dans le fichier ci-joint:
- la lecture se fait de bas en haut
- oui, Il faut au moins un Y entre un Stop Y et son précédent Stop Y pour faire la soustraction, sinon la cellule doit restée vide (ou = 0)
- sur la ligne 749 le résultat en N749 = B749-B753 car le 1er Y apparu depuis le dernier stop Y est en M753, les Y en L752 et L751 ne doivent pas être pris en compte
- sur la ligne 747 la cellule N747 doit rester vide car depuis le dernier stop Y en M749 il n'est pas apparu de Y dans la colonne L
(même raisonnement concernant l'apparition des Z et stop Z)

j'espère que ce sera plus clair et que pourras m'aider, et encore une fois je te remercie.

https://www.cjoint.com/c/FAtugf6dddc
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
20 janv. 2016 à 09:21
Oui, ça nécessite plus que des adaptations, il vaut mieux déposer un fichier qui reflète le plus possible la structure.
Tu as des formules qu'il faut préserver, une valeur en C3 non prévues, et en plus des cellules en erreur...

J'ai refais en moins concis que ce soit plus lisible, des constantes que tu puisses adapter plus facilement et commenté.
Et en posant les formules comme ça tu pourras contrôler le résultat.

MAIS :
- sur la ligne 749 le résultat en N749 = B749-B753 car le 1er Y apparu depuis le dernier stop Y est en M753, les Y en L752 et L751 ne doivent pas être pris en compte
Pourquoi ce n'est pas celui en L759 ? Il ne faut pas en tenir compte quand c'est sur un STOP, même de l'autre ?

https://www.cjoint.com/c/FAuitASfg7N
Dis-moi ce qui manque ou est en erreur avec les explications.
eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
20 janv. 2016 à 19:23
Salut Eric,

c'est super, c'est exactement les calculs que je souhaite voir effectués, et oui tu as raison c'est bien le Y en L759 qui doit être pris en compte (on ne tient pas compte de l'autre stop).
Par contre dans mon fichier source les paramètres en C1, C2 et C3 ne sont pas ceux du fichier test, quand je les modifie dans le fichier que tu m'as envoyé il ne se passe rien au niveau des calculs de la colonne N alors que les Y, Z, stop Y et stop Z changent de cellules, est-ce normal ?
Je vais aussi devoir ajouter des lignes à ce tableau car il y a beaucoup d'autres données à analyser (au niveau des colonnes c'est complet sauf leur nom change), le calcul se fera-t-il automatiquement sur ces nouvelles lignes ?
De plus je devrai également modifier la constante incluse dans le calcul des cellules Q (qui deviendra variable en fonction d'autres paramètres), cela aura-t-il une incidence sur le calcul que va effectuer ta commande en VBA ?

je me répète mais encore un grand merci !
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
21 janv. 2016 à 14:59
Bonjour,

quand je les modifie dans le fichier que tu m'as envoyé il ne se passe rien au niveau des calculs de la colonne N alors que les Y, Z, stop Y et stop Z changent de cellules, est-ce normal ?
Oui, c'est conçu comme ça. Il faut recliquer sur le bouton pour rafraichir la colonne.
Si tu veux une mise à jour en direct li faudrait toutes ref de cellules saisies (pas les formules intermédiaires) qui peuvent influencer le résultat (sur même lignes ou x lignes plus bas, ou constantes en ref absolue ailleurs). Mais bon, est-ce bien nécessaire ? Tu auras plus de mal à l'adapter plus tard en cas de besoin.

Je vais aussi devoir ajouter des lignes à ce tableau car il y a beaucoup d'autres données à analyser (au niveau des colonnes c'est complet sauf leur nom change), le calcul se fera-t-il automatiquement sur ces nouvelles lignes ?

Si A est toujours saisi oui (je me base dessus pour avoir le nombre de ligne à traiter)

De plus je devrai également modifier la constante incluse dans le calcul des cellules Q (qui deviendra variable en fonction d'autres paramètres), cela aura-t-il une incidence sur le calcul que va effectuer ta commande en VBA ?

Ben clic sur le bouton et c'est recalculé.
Si B, M et L sont mis à jour c'est bon. Ce qui est le cas sur L dans ce cas.
eric
0
laurentlb1 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
21 janv. 2016 à 20:43
Bonsoir Eric,

un grand merci pour ton aide et tes explications, ça fonctionne parfaitement, je vais pouvoir passer à l'étape suivante, tu m'as fait gagner énormément de temps.
Il n'est pas impossible que je sollicite de nouveau ce forum pour d'autres pb ... ma connaissance en excel étant assez limitée.

encore merci, j'aimerais pouvoir apporter quelque chose en retour mais sur ce domaine là ça va être difficile :)
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
23 janv. 2016 à 08:18
Bonjour,
grâce à Eric l'étude a bien avancée, il me reste maintenant à essayer d'automatiser l'optimisation des variables qui servent à calculées certaines données du tableau (cf lien ci-après) afin que le résultat en cellule S7 soit le plus élevé possible.
Merci pour votre aide et/ou vos idées.

https://www.cjoint.com/c/FAxhktrQh8i
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 23/01/2016 à 13:01
Bonjour,

Déjà si tu t'adresses à tout le monde (ce qui est mieux si tu veux une réponse rapide) il vaut mieux commencer un nouveau topic, quitte à donner son adresse ici si tu veux que je suive. Un déjà avancé à moins de lecteurs
Ensuite je t'avais dit avoir mis des constantes pour adapter en cas de modifs. :
' constantes n° des colonnes
    Const colPoids As Long = 2
    Const colYZ As Long = 12
    Const colSTOP As Long = 13
    Const colResult As Long = 14
    Const celDeb As String = "A4"    ' cellule 1 de la table

Maintenant tes données commencent en A7.
Ca plante vu que tu n'as pas changé... Mais d'un autre coté j'avais oublié d'en tenir compte à un endroit dans mon programme :-) 1 partout donc.

D'autre part ta demande est trop vague.
Quelles variables ? Moi je me doute que c'est en K2:K5 mais un nouveau lecteur.. Précises toujours les ref que ce soit clair et qu'on n'ait pas de questions à se poser ni à chercher sur toute la feuille. Ainsi que de combien à combien et le pas à utiliser pour chaque.

Là je t'ai ajouté des toupies qui lancent la maj automatiquement. Peut-être que ça te suffira, on n'a aucune idée de ce que tu cherches ni de l'impact de chaque élément. Sinon sers-toi en pour essayer de déterminer la forme des variations de S7 pour chaque variable et essayer d'en déterminer ces limites et le pas à utiliser.
Si tu peux avoir des points d'inflexion très rapprochés il faut que le pas soit plus fin pour ne pas rater un maximum.
K2:K4 ont l'air d'être entiers. Si oui ça va mieux en le disant. Si on a les bornes ça devient très simple de tester toutes les combinaisons.
K5 n'as pas l'air d'agir. A ne pas faire varier ? Ca serait bien pour le temps de calcul, précise-le.

Plus on est précis et plus on a une réponse adaptée.
J'ai donc corrigé et compléter le fichier : https://www.cjoint.com/c/FAxl5xNJWsD
eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
23 janv. 2016 à 16:57
Bonjour Eric,

merci pour ton suivi et tes commentaires très constructifs. Je vais donc essayer d'être plus clair dans mes explications:
dans le fichier que tu as posté dans ton précédent message:
- la variable en K2 (positionnée par défaut à 20) est à optimiser dans la plage [5;60], le pas est de 1
- la variable en K3 (positionnée par défaut à 20) est à optimiser dans la plage [1;20], le pas est de 1
- la variable en K4 (positionnée par défaut à 60) est à optimiser dans la plage [60;90], le pas est de 1
- la variable en K5 (positionnée par défaut à 0,925) est à optimiser dans la plage [0,5;2], le pas est de 0,05

K2, K3 et K4 sont des entiers, K5 non

Le but est donc de faire travailler Excel afin qu'il détermine tout seul quelle est la combinaison optimale des valeurs en K2/K3/K4/K5 (avec les contraintes de plages et de pas définis ci-dessus) qui permettent d'obtenir la valeur maximale en S7.

Nb: les calculs doivent pouvoir se faire si j'ajoute des lignes supplémentaires (ajout de nouvelles données) à la matrice car en fonction du sujet étudié le nombre de lignes de la matrice peut varier de 300 à 5000 voir plus (mais je crois que tu m'as déjà dis que cela ne poserais pas de problème tant que la colonne A ne change pas ce qui sera le cas).

et encore une fois merci pour tout.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
23 janv. 2016 à 17:55
[0,5;2], le pas est de 0,05
Tu confirmes le 0.5 et 0.05 ? Ne pas lire 0.005 ?
Pas trop le temps là mais je te conseille le solveur 'Données / Analyse / Solveur'.
Bien mettre toutes les contraintes, si tu as du mal tu dis.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
23 janv. 2016 à 19:14
PS:j'ai répondu un peu vite. Ca n'ira pas, il faut relancer le calcul des formules à chaque fois, chose qu'il ne fera pas.
Je vois ça plus tard.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
23 janv. 2016 à 19:23
Bonsoir Eric,
effectivement le pas est 0,005 pour K5
pour le timing pas de souci, c'est déjà bien que tu m'aides !
@+
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
24 janv. 2016 à 12:29
Bonjour,

J'espère que tu as un pc puissant...
Sur le mien, avec tes conditions et à raison de 10 éval/s il lui faudrait 1616h...
Si tu arrives à ordonner toutes tes colonnes de façon que chaque formule ne fasse appel qu'à des colonnes situées à sa gauche on pourrait avoir un gain de temps moyennant un petit changement dans le code (.CalculateRowMajorOrder au lieu de .Calculate)
Sinon il faudrait tout calculer en mémoire et non sur feuille mais il y a du boulot...
https://www.cjoint.com/c/FAylBdhWwsm
Si tu veux l'arrêter : Ctrl+Pause et remettre calcul auto dans les options
eric
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
24 janv. 2016 à 18:17
Bonne nouvelle, je viens de diviser le temps par 5.
En fait l'affichage des heures n'était pas correct. C'est 300 h qu'il fallait lire, plus que 12 j ... :-)
https://www.cjoint.com/c/FAyrrcZbp3m
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
Modifié par laurentlb1 le 24/01/2016 à 22:42
Bonsoir Eric,

bon ben va falloir que j'aille chiper un super calculateur à la NASA :)

blague à part, lorsque je lance la fonction 'maximiser' dans le fichier que tu as joint dans ton précédent message il y a un décompte qui apparaît en bas du tableau à gauche avec un temps restant de 6 mn qui s'affiche (effectivement au bout de 6 mn le calcul de maximisation semble terminer), à côté un numérateur qui défile sur un dénominateur fixe à 2408 (je suppose que c'est le nombre de calculs réalisés, ou combinaisons testées, sur la totalité à faire) et encore à côté Smax=9798,19, étant à des années lumières de tes compétences peut tu m'expliquer à quoi cela correspond (car très différent du temps que tu m'annonces dans ton message précédent).
De plus je suis extrêmement surpris par la valeur qui semble optimale à 0,5 pour la variable en K5, qui correspondrait donc au bas de la fourchette. En effet de manière usuelle cette valeur est habituellement fixée entre 0,90 et 1,25 sauf que, et c'est un des objets de mon étude, combinée à d'autres variables, ici celle en K2, K3, et K4, on sort du schéma classique.
Puis-je dans le fichier que tu m'as envoyé modifier le bas de la fourchette, le mettre à 0,40 par exemple, (si oui en modifiant quelle cellule, E5, G5 ?) et relancer le processus d'optimisation (j'ose pas trop bidouiller ton fichier de peur de le dérégler et de fausser les résultats).
Demain je ferai des tests en modifiant les données des cellules B, C, D, E en prenant les paramètres d'un autre sujet et ne manquerai pas de te tenir informé des résultats.

Encore mille merci pour ton aide,
Très bonne fin de soirée.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
24 janv. 2016 à 23:22
En fait pour faire les tests je n'attendais pas 12 j :-)
Regarde en haut, tu dois saisir sur la feuille en G2:I5 la fourchette et le pas voulu pour chaque variable. Les min-max sont restreints J'ai préféré ne pas mettre en dur dans le programme.
Tu mets tes valeurs et tu pars au ski
Dans la statusbar tu as où il en est/nb total d'éval à faire, le max trouvé actuel et une évaluation du temps restant
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
Modifié par laurentlb1 le 25/01/2016 à 20:39
Bonsoir Eric,

Je te livre les 1ers résultats des tests que j'ai pu réaliser grâce à toi, le système s'avère pertinent (bon ça je m'en doutais un peu mais j'avais besoin de le tester sur un nombre important de données pour le vérifier ce que j'ai pu faire grâce à ton aide), il ressort que les données issues de l'optimisation sur une plage de x périodes ne sont pas forcément optimales (pour le même sujet) sur une plage de plus petite de période, pour faire simple l'optimisation des variables ne donne pas le même résultat en fonction de l'évolution du sujet dans le temps et de la période de temps considérée (même si au global le résultat est très satisfaisant).
L'objectif suivant me concernant sera donc de voir s'il est possible de déterminer une période x sur laquelle les variables optimisées produiront un effet sur la période x+1 proche (elles ne pourront jamais être exactement les mêmes) de ce que donneront les vraies variables optimisées calculées une fois la période x+1 terminée.

Je vais donc me replonger dans l'analyse de ces données mais avant de conclure je souhaitais encore une fois t'adresser tous mes remerciements pour l'aide que tu as bien voulu m'apporter.

Laurent
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
25 janv. 2016 à 21:38
Bonjour,

Pas tout compris mais si ça t'a fait avancer tant mieux :-)
Bonne continuation.
eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1
Modifié par laurentlb1 le 27/01/2016 à 19:45
Salut Eric,

Je vais encore te solliciter pour une légère modification des paramètres dans les fichiers ci-joints:
Est-il possible de modifier les paramètres de la formule de sorte que quand apparaissent les Z et STOP Z (idem pour les Y) que les calculs se fassent non pas à partir des cellules en B de la même ligne (que celle du Z et STOP Z) mais en B de la ligne suivante (ligne n-1).
Exemple: dans la colonne N19 est actuellement calculée la différence entre B19 et B21, est-il possible de modifier ce calcul de sorte que ce soit le résultat B18-B20, et ainsi de suite pour tous les calculs qui sont amenés à être réalisés dans le colonne N.

https://www.cjoint.com/c/FABsQ0l7xKi

https://www.cjoint.com/c/FABsRYcdZ1i

En te remerciant par avance,
Laurent
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
28 janv. 2016 à 00:28
Bonjour,

vite fait car il est tard et demain je suis occupé.
Dans Formule() :
result(lig) = "=" & Cells(lig + offsetLig1, colPoids).Address(False, False) & "-" & Cells(ligSavY + offsetLig1 - 1, colPoids).Address(False, False)

offsetLig1 : n° ligne de titre
lig = n° ligne en cours (la 1 étant la ligne de titre)
ligSavY : n° de ligne du Y mémorisé
Donc remplace
lig + offsetLig1

par :
lig + offsetLig1 -1


Et si jamais tu as un Stop en 1ère ligne données (la 8) je ne la traiterais pas :
For lig = UBound(datas) To 3 Step -1
au lieu de :
For lig = UBound(datas) To 2 Step -1
pour éviter une erreur

eric
0
laurentlb1 Messages postés 15 Date d'inscription samedi 16 janvier 2016 Statut Membre Dernière intervention 28 janvier 2016 1 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
28 janv. 2016 à 20:06
Bonsoir Eric,

un peu tardivement (également peu dispo aujourd'hui), merci pour tes indications, ça fonctionne parfaitement.

bonne soirée
0