Lire une formule dans une cellule
Résolu/Fermé
A voir également:
- Lire.cellule
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et - Guide
- Aller à la ligne dans une cellule excel - Guide
- Lire epub - Guide
7 réponses
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
17 juin 2011 à 14:01
17 juin 2011 à 14:01
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
16 juin 2011 à 18:53
16 juin 2011 à 18:53
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
17 juin 2011 à 11:10
17 juin 2011 à 11:10
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
17 juin 2011 à 11:53
17 juin 2011 à 11:53
C'était ma 1° réponse...
Abandon
Abandon
Raymond PENTIER
Messages postés
58933
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 avril 2025
17 313
17 juin 2011 à 13:27
17 juin 2011 à 13:27
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
Raymond PENTIER
Messages postés
58933
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 avril 2025
17 313
17 juin 2011 à 13:29
17 juin 2011 à 13:29
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.