Afficher la formule d'une cellule

Enimation -  
JvDo Messages postés 2012 Statut Membre -
Bonjour,



je veux résoudre ce problème, dans les cellules j'ai : "A1= 3" " B1= 5" "C1 =(A1*B1)+(B1-A1)" donc C1 va afficher le resultat "17"
dans la cellule D1 je veux afficher l’opération comme suit "=(3*5)+(5-3)" et je trouve pas comment faire?
A voir également:

4 réponses

f894009 Messages postés 17414 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,
formule en D1:
="=("&A1&"*"&B1&")+("&B1&"-"&A1&")"
0
Enimation
 
je veux utiliser des formules automatique pour un calcule de métré l’équation peut varier d'une cellule a autre et la saisie manuelle des opération prendrai énormément de temps
0
fabien25000 Messages postés 697 Statut Membre 59
 
Bonjour,

c'est une question récurrente..
voir ici pour différentes solutions à adapter

0
JvDo Messages postés 2012 Statut Membre 859
 
Bonjour à tous,

La question du remplacement des références par leurs valeurs dans une formule est délicate.
Il n'y a pas dans le modèle de données Excel, dans la classe Range, de propriété qui retourne l'ensemble de tous les précédents d'une formule.
Il existe bien Precedent et DirectPrecedent qui retournent un range des cellules appelées par la formule dans la feuille de calcul mais ça ne fonctionne que dans une procédure, pas dans une fonction.

Sur le net tu trouveras des solutions à base de parser de formules ou qui utilisent NavigateArrow()
Regarde https://colinlegg.wordpress.com/2014/01/14/vba-determine-all-precedent-cells-a-nice-example-of-recursion/

Si tes formules ne font des appels que dans la même feuille et que tu peux te satisfaire d'une procédure, regarde la pièce jointe, je t'ai écrit un bout de code qui peut te donner des idées.
Tu sélectionnes une ou des cellules contenant une formule (colonne C), tu lances la macro et tu obtiens le résultat dans la cellule à droite (colonne D).
Tu auras intérêt à effacer la colonne D avant de lancer la macro, si tu veux voir quelque chose.

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

Cordialement
0