Microsoft 365 "Récupérer" le résultat d'une fonction VBA avant le changement

tbft

XLDnaute Accro
Bonjour à tous

J'ai du mal à formuler ma demande.
Le plus est de regarder le fichier joint et plus particulièrement la fonction test_lecture_ancien_resultat().
Elle est utilisé à la cellule H11 et alimenter par la cellule G11.
Ce que je cherche, est quand début de fonction, je puisse récupérer les valeurs (résultats) de l'ancien calcul.

J'ai fait des essais dont le résultat est ... catastrophique... comme le résultat des recherches sur le NET

Pouvez-vous m'aider, s'il vous plait?

D'avance merci.
 

Pièces jointes

  • Essais formules et autres.xlsm
    21.6 KB · Affichages: 11

Dranreb

XLDnaute Barbatruc
Dans cet exemple à chaque fois qu'on change la valeur de C2, la fonction en B2 renvoie son ancienne valeur augmentée de celle de C2, sans toutefois dépasser 100.
Mais attention: chaque invocation dans une cellule de cette fonction Test donne lieu à un nom dans le classeur.
Alors si elle est utilisée dans beaucoup de cellules, voire derrière des lignes pouvant être ajoutées ou supprimées, ça ne va pas du tout !
C'est pourquoi je demande à @tbft des exigences de pérennité et de multiplicité souhaitées.
 

Pièces jointes

  • ValPréFctTbft.xlsm
    18.8 KB · Affichages: 1

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

A mon humble avis, si une cellule avec fonction doit utiliser la valeur précédente de la fonction, alors, me semble-t-il, la fonction n'est pas adaptée. Une Sub semble plus appropriée. Encore faut-il savoir quand exécuter cette Sub ? (modif des valeurs dont dépendent les cellules avec fonction ?).

La notion de fonction est indépendante du temps et ne dépend que de la valeur de ses arguments.
Tout contournement ne peut selon moi qu'aboutir tôt ou tard à des erreurs ( @Dranreb a cité quelques difficultés dont les suppression ou insertion de plage - le Undo doit être sans doute un parasite aussi).

En résumé, laisser ce type de question du week-end à @Usine à gaz que je salue bien amicalement 🤣🤣🤪🤣🤪🤣🤪
 

Dranreb

XLDnaute Barbatruc
Ça peut quand même être utile de savoir le faire au cas où, bien que ne dépendant pas réellement de sa valeur précédente, la fonction ne peut procéder que par approches successives, sa valeur précédente ayant tendance à être une bonne approche de sa valeur finale.
Mais bon. Dans cet ordre d'idée, le calcul itératif a aussi le pouvoir d'éviter certaines références circulaire. Mais il peut aussi ralentir les réactions du classeur …
 

tbft

XLDnaute Accro
Bonjour

Je tenais d'abord à remercier pour vos messages.
Je n'ai pas (malheureusement) pas encore eu le temps de décortiquer les fichiers que vous m'avez envoyer à cause d'une surcharge de travail avec une importance plus grande.
Mais, j'ai pu lire vos critiques. Et, je pense que je vais repenser mon fichier afin d'en tenir compte.
Comme par exemple utiliser une macro plutôt qu'une fonction.

Par contre, j'avais (sur une ancienne version) pu récupérer la taille du résultat de la fonction (affecter par l'utilisateur)... Mais impossible de remettre la main sur le fichier... Grrrrrrrrrrrr. Si je le retrouve, je le partage.

Mais encore merci pour vos critiques et votre aide.
 

Dranreb

XLDnaute Barbatruc
Bonjour tbft.
Je n'y vois pas d'inconvénient
Bien cordialement.
_____________________________________________________
Joindre un classeur, support potentiel de la solution à votre problème concernant des modèles de données et de résultats souhaités y figurant, n'est pas une obligation: Ça ne fait qu'entrouvrir la possibilité d'obtenir une réponse de ma part !
(voire de la vôtre: un problème bien posé étant à moitié résolu)
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG