Bonjour à tous,
Je souhaite déclencher une macro qui me renvoie le résultat d'un calcul dans une cellule précise et qui se déclenche à partir d'une formule.
J'ai trouvé pas mal de réponse sur ce sujet mais aucune ne correspondant exactement à mon cas.
J'ai dans ma cellule A1 une formule "linkée" avec un autre logiciel (lien DDE je crois). Ma formule est figée mais le résultat change en permanence avec le temps, passant de 100 à 90 à 110 à 150,...
Pour moi ce résultat est aléatoire.
Je souhaiterais faire ceci: si à un moment donné, ma cellule A1 vaut 100, cela déclenche un calcul prenant en compte différents paramètres dans différentes cellules et me renvoyant le résultat en B1.
Pour cela, je pensais faire en A2 par exemple une formule du type:
=si(A1=100;MaMacro();0)
et MaMacro() effectuerait le calcul que souhaite et irait au final écrire en B1 le résultat.
Mais je rencontre un problème à ce niveau. J'ai l'impression qu'à partir d'une formule on ne peut pas appeler une macro qui va modifier la valeur d'une cellule. J'arrive à obtenir des Msgbox ou à lire, mais écrire des données dans une cellule, je n'y arrive pas. Dès lors que je place par exemple workbooks.("Classeur1.xls").worksheets("Feuil1").range("B1").value=resultat dans MaMacro(), et bien je n'obtiens pas le résultat en B1 et en A2 où je fais appelle à MaMacro(), j'ai #VALEUR.
Ici j'arrive donc à lancer une macro mais qui ne fait pas ce que je souhaite.
J'ai essayé aussi avec Worksheet_Change mais là aussi problème. J'ai l'impression que pour lui il ne s'agit que de formule donc, pas de changement et donc dans ce cas pas de déclenchement possible.
Je ne suis pas expert d'excel et de vba donc je passe peut être à côté de solutions simples. Aussi je ne suis pas sûr d'avoir été bien clair, demandez moi s'il vous faut plus de détails.
Un grand merci pour toute votre aide
Je souhaite déclencher une macro qui me renvoie le résultat d'un calcul dans une cellule précise et qui se déclenche à partir d'une formule.
J'ai trouvé pas mal de réponse sur ce sujet mais aucune ne correspondant exactement à mon cas.
J'ai dans ma cellule A1 une formule "linkée" avec un autre logiciel (lien DDE je crois). Ma formule est figée mais le résultat change en permanence avec le temps, passant de 100 à 90 à 110 à 150,...
Pour moi ce résultat est aléatoire.
Je souhaiterais faire ceci: si à un moment donné, ma cellule A1 vaut 100, cela déclenche un calcul prenant en compte différents paramètres dans différentes cellules et me renvoyant le résultat en B1.
Pour cela, je pensais faire en A2 par exemple une formule du type:
=si(A1=100;MaMacro();0)
et MaMacro() effectuerait le calcul que souhaite et irait au final écrire en B1 le résultat.
Mais je rencontre un problème à ce niveau. J'ai l'impression qu'à partir d'une formule on ne peut pas appeler une macro qui va modifier la valeur d'une cellule. J'arrive à obtenir des Msgbox ou à lire, mais écrire des données dans une cellule, je n'y arrive pas. Dès lors que je place par exemple workbooks.("Classeur1.xls").worksheets("Feuil1").range("B1").value=resultat dans MaMacro(), et bien je n'obtiens pas le résultat en B1 et en A2 où je fais appelle à MaMacro(), j'ai #VALEUR.
Ici j'arrive donc à lancer une macro mais qui ne fait pas ce que je souhaite.
J'ai essayé aussi avec Worksheet_Change mais là aussi problème. J'ai l'impression que pour lui il ne s'agit que de formule donc, pas de changement et donc dans ce cas pas de déclenchement possible.
Je ne suis pas expert d'excel et de vba donc je passe peut être à côté de solutions simples. Aussi je ne suis pas sûr d'avoir été bien clair, demandez moi s'il vous faut plus de détails.
Un grand merci pour toute votre aide