Automatisation fonction Valeur cible & résultat formule de cellule change

Bonjour à tous,

Je suis nouveau sur le Forum Excel-Pratique, et aussi nouveau quand à la pratique de VBA sous excel. J'ai passé plusieurs heures à trouver des réponses à ma problématique, et j'ai pu trouvé certaines réponses. Malgré tout, je n'arrive toujours pas à mettre en place ce que je souhaite. Le problème à résoudre n'est probablement pas très compliqué, mais vu mon niveau 0 en VBA (et programmation de tout genre) ça m'échappe... Si quelqu'un d'entre vous sait m'aider ça serait vraiment très gentil.

J'expose mon problème :

je souhaite automatiser la fonction Valeur cible quand le résultat d'une formule de cellule Change. Voir un screen-shot de la feuille excel ci-dessous :

Le CAPEX est égal à D3+D4-D5

Lorsque une des valeur D3, D4, ou D5 est modifiée, ça modifie le CAPEX.

J'essaie d'automatiser le calcul du remboursement annuel (intérêt nul):

- quand la valeur de CAPEX est modifiée (en agissant sur D3, D4, ou D5)

- quand je change le nombre d'année de remboursement cible (D13)

image

voici ce que j'ai écrit en VBA

image

quand je fais une modification, ça semble marcher une première fois sur le lancement de la fonction valeur cible, mais je recois aussi directement le code erreur suivant (et le fichier excel reste bloqué).

image

Est-ce que l'un d'entre vous sait résoudre ce problème?

vous trouverez le fichier excel en PJ. Je sais qu'il est possible de faire différemment, mais c'est pour comprendre la fonction est l'implanter dans un fichier plus conséquent.

16classeur1.xlsm (19.26 Ko)

Bonsoir,

votre code me pique les yeux ! :
Cellule_modifiée est définie comme un objet Range
Cet objet est égale à l'objet Range de la feuille Excel "D7"
Ensuite vous faites un test d'intersection entre l'objet Range Cellule_modifiée avec la cellule RANGE"D7", alors il y a "match" à chaque fois...

Si vous voulez lancer un code suite à un changement de valeur dans une cellule, il faut utiliser l'événementiel adapté de la feuille Excel surveillée, donc ici le "Change".

Ceci vous donnera un "Target" représentant la cellule où a eu lieu le changement et c'est avec ce Target que vous faites le test d'intersection :
If Not Intersect(Target,Range("D3:D5,D13")) Is Nothing Then

@ bientôt

LouReeD

Rechercher des sujets similaires à "automatisation fonction valeur cible resultat formule change"