Lire une formule dans une cellule
Résolu
Alain
-
Alain -
Alain -
Bonjour,
Je travaille sous excel, avec une matrice contenant de nombreuses formules, et je souhaiterais pouvoir lire une formule dans cette matrice, et l'appliquer à mes variables.
Par exemple, une fois que j'ai attribué des valeurs aux variables X et Y, je voudrais lire la formule "X+Y" dans une cellule, et afficher le résultat dans une autre...
Est-ce possible?
Ou dois-je faire tous les calculs dans excel directement?
En vous remerciant par avance,
Alain
Je travaille sous excel, avec une matrice contenant de nombreuses formules, et je souhaiterais pouvoir lire une formule dans cette matrice, et l'appliquer à mes variables.
Par exemple, une fois que j'ai attribué des valeurs aux variables X et Y, je voudrais lire la formule "X+Y" dans une cellule, et afficher le résultat dans une autre...
Est-ce possible?
Ou dois-je faire tous les calculs dans excel directement?
En vous remerciant par avance,
Alain
A voir également:
- Lire.cellule
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire epub - Guide
- Formule si et - Guide
- Verrouiller une cellule excel dans une formule - Guide
- Formule excel pour additionner plusieurs cellules - Guide
7 réponses
bonjour à tous
je ne sais pas si j'ai bien compris le pb, mais voila quand même une tentative
https://www.cjoint.com/?0Frn7GplWul
bonne suite
je ne sais pas si j'ai bien compris le pb, mais voila quand même une tentative
https://www.cjoint.com/?0Frn7GplWul
bonne suite
Bonjour
essaies avec cette fonction
essaies avec cette fonction
Function dire_formule(cellule As Range) As String If cellule.HasFormula Then dire_formule = cellule.Formula Else dire_formule = "sans formule" End If End Function
Je te remercie de ta réponse.
cependant, j'ai essayé ta fonction, avec la procédure suivante:
Sub essai()
X = Range("B4").Value
Y = Range("B5").Value
Z = dire_formule(Cells(3, 3))
Range("B6").Select
ActiveCell.Value = Z
End Sub
Mais la formule C3 contient bien "X+Y",
et la procédure me renvoi "sans formule" en B6.
si je mets "=X+Y" en C3, les cellules C3 et B6 affichent "#NOM?" sans effectuer le calcul.
Comment faire pour effectuer le calcul, et pas seulement transférer la formule?
Cordialement,
Alain
cependant, j'ai essayé ta fonction, avec la procédure suivante:
Sub essai()
X = Range("B4").Value
Y = Range("B5").Value
Z = dire_formule(Cells(3, 3))
Range("B6").Select
ActiveCell.Value = Z
End Sub
Mais la formule C3 contient bien "X+Y",
et la procédure me renvoi "sans formule" en B6.
si je mets "=X+Y" en C3, les cellules C3 et B6 affichent "#NOM?" sans effectuer le calcul.
Comment faire pour effectuer le calcul, et pas seulement transférer la formule?
Cordialement,
Alain
bonjour,
si tu écris en C3 = X+Y tu n'auras de formule mais une valeur...
si tu utilises VBA
Range("C3").FormulaLocal = "=B4+B5"
la fonction a été modifiée car elle renvoyait la somme et non la formule
demo
https://www.cjoint.com/?3FrljvbA3py
si tu écris en C3 = X+Y tu n'auras de formule mais une valeur...
si tu utilises VBA
Range("C3").FormulaLocal = "=B4+B5"
la fonction a été modifiée car elle renvoyait la somme et non la formule
demo
https://www.cjoint.com/?3FrljvbA3py
Bonjour Alain.
J'avoue que je n'ai pas compris l'intérêt de ce que tu cherches à faire ...
* Mais si tu veux juste savoir quelle formule donne un certain résultat, il suffit de faire un double-clic dans la cellule !
* Pour lire toutes les formules de la feuille d'un coup, demande Affichage/Formules.
* Pour un affichage permanent des formules dans des cellules différentes, il faut travailler cellule par cellule :
- ajouter un apostrophe au début de la formule
- sélectionner la formule ainsi modifiée
- faire Copier
- cliquer sur la croix rouge "Annuler" à gauche de la Barre de formule (afin que la modification ne soit pas validée dans la cellule source)
- aller dans la cellule de destination
- faire Coller
- recommencer pour chaque cellule ...
mais cela ne te permettra pas de modifier la formule de la cellule qui effectue le calcul.
J'avoue que je n'ai pas compris l'intérêt de ce que tu cherches à faire ...
* Mais si tu veux juste savoir quelle formule donne un certain résultat, il suffit de faire un double-clic dans la cellule !
* Pour lire toutes les formules de la feuille d'un coup, demande Affichage/Formules.
* Pour un affichage permanent des formules dans des cellules différentes, il faut travailler cellule par cellule :
- ajouter un apostrophe au début de la formule
- sélectionner la formule ainsi modifiée
- faire Copier
- cliquer sur la croix rouge "Annuler" à gauche de la Barre de formule (afin que la modification ne soit pas validée dans la cellule source)
- aller dans la cellule de destination
- faire Coller
- recommencer pour chaque cellule ...
mais cela ne te permettra pas de modifier la formule de la cellule qui effectue le calcul.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Une alternative consisterait à créer des formules nommées, c'est-à-dire donner un nom à tes formules, comme tu donnes un nom à des plages.
En modifiant une de ces formules, toutes les cellules contenant cette formule seraient modifiées.
En modifiant une de ces formules, toutes les cellules contenant cette formule seraient modifiées.
En fait je n'ai peut-être pas été très clair, et je m'en excuse auprès de michel.
Je voudrais en fait pouvoir faire lire par le programme vba des formules, de type
"muH*étaNO3H*(k02/(KO2+SO2))*(SNO3/(KNO3+SNO3))*(SF/(KF+SF))*(SF/(SF+SA))*(SNH4/(KNH4+SNH4))*(SPO4/(KP+SPO4))*(SALK/(KALK+SALK))*XH
", dont j'ai des tableaux pleins, dans le tableur excel, sans avoir à les rentre en vba.
Je pourrais ainsi attribuer des valeurs aux variables (muH, kO2, etc...) et les calculer, sans remplacer manuellement dans chaque formule la valeur des variables par l'adresse de la cellule contenant la valeur.
Je voudrais en fait pouvoir faire lire par le programme vba des formules, de type
"muH*étaNO3H*(k02/(KO2+SO2))*(SNO3/(KNO3+SNO3))*(SF/(KF+SF))*(SF/(SF+SA))*(SNH4/(KNH4+SNH4))*(SPO4/(KP+SPO4))*(SALK/(KALK+SALK))*XH
", dont j'ai des tableaux pleins, dans le tableur excel, sans avoir à les rentre en vba.
Je pourrais ainsi attribuer des valeurs aux variables (muH, kO2, etc...) et les calculer, sans remplacer manuellement dans chaque formule la valeur des variables par l'adresse de la cellule contenant la valeur.