TexBonsoirte -> Formule

  • Initiateur de la discussion Initiateur de la discussion Matt78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Matt78

Guest
bonsoir toutes et tous,

J'ai une variante de ma précédente question. peut on convertir une chaine de caractères en formule de la cellule A1 par exemple:
Ex: A = '=3*5' et A devient la formule de la cellule 'A1'.
Donc 'A1' = 15.
Je ne sais pas si c'est possible, je fais confience aux experts du forum.
Bonne fin de nuit.
Matt78
 
Salut Matt78, Hervé et les autres,

Si la formule est affichée dans la cellule, au lieu du résultat, c'est fort probablement que la cellule est au format texte, ou que la formule est précédée d'une ' (apostrophe) ou d'un espace.

Dans le premier cas, sélectionner la (ou les) cellule(s), la (ou les) mettre au format standard, puis cliquer dans la barre de formule et valider.

Dans le deuxième cas, il faut effacer la ' ou l'espace.

Si ce n'est pas cela, un petit extrait en pièce jointe permettrait d'y voir plus clair.

Ândré.
 
Bonjour Hervé, andré, le forum,

j'ai essayé ta solution qui marche bien, sauf que si je fais référence a une autre feuille, j'ai un problème sur le résultat: il me met en cellule 'A1' : dièse'VALEUR!

Private Sub workBook_open()
Dim f1, f2, c1 As String
f1 = 'Feuil2'
f2 = 'Feuil3'
c1 = 'A1'
f = 'Worksheets(f1).range(c1).value + Worksheets(f2).range(c1).value'
Worksheets('Feuil1').Range('A1').Value = Evaluate(f)
End Sub

Pourquoi?
Merci pour votre aide et bonne journée.
Matt78
 
re tout le monde
Bonjour andré

Matt, 🙂

Dans ce cas précis, tu n'a pas besoin d'évaluer le texte, puisque f prend déjà la valeur numérique de A1 des deux feuilles :

Private Sub Workbook_Open()
Dim f1, f2, c1 As String
Dim f As Double
f1 = 'Feuil2'
f2 = 'Feuil3'
c1 = 'A1'
f = Worksheets(f1).Range(c1).Value + Worksheets(f2).Range(c1).Value
Worksheets('Feuil1').Range('A1').Value = f
End Sub

En espérant t'avoir été utile.

Salut
 
Re Hervé, le forum,

dans le code que je t'ai montré, f est entre guillemets, car c'est une chaine qui peut changer d'où:

Private Sub workBook_open()
Dim f1, f2, c1 As String
f1 = 'Feuil2'
f2 = 'Feuil3'
c1 = 'A1'
f = 'Worksheets(f1).Range(c1).Value + Worksheetsf2).Range'(c1).Value'
Worksheets('Feuil1').Range('A1').Value = evaluate(f)
End Sub

Résultat Feuil1 Cellule'A1' = #VALEUR!
@+
Matt78
 
Salut à tous,
Tu as abusé un peu sur les '.
Il semble que tu aimes les textes.
Modifie donc la ligne f= en enlevant les '.
Tu obtiendras cela et ça marche

Dim f1, f2, c1 As String
f1 = 'Feuil2'
f2 = 'Feuil3'
c1 = 'A1'
f = Worksheets(f1).Range(c1).Value * Worksheets(f2).Range(c1).Value
Worksheets('Feuil1').Range('A1').Value = Evaluate(f)


Tu peux aussi écrire directement

Worksheets('Feuil1').Range('A1').Value = _
Evaluate(Worksheets('Feuil2').Range('a1').Value _
* Worksheets('Feuil3').Range('a1').Value)


Attention, j'ai remplacer le signe + par * pour être conforme à ta demande initiale.

A+

Marco
 
Rebonjour tout le monde
Bonjour marco

Je pense que matt, ne veut pas renvoyer la valeur, mais la formule dans la cellule A1 :

Dim f1, f2, c1 As String
f1 = 'Feuil2'
f2 = 'Feuil3'
c1 = 'A1'
f = '=' & f1 & '!' & c1 & '+' & f2 & '!' & c1
Worksheets('Feuil1').Range('A1').Value = f

Enfin, si j'ai bien compris :unsure:

Salut
 
Bonjour marco, Hervé, le forum,

Merci Hervé, tu as parfaitement compris mon besoin.
C'est super génial, car ce n'était pas évident à faire comprendre, ou c'est moi qui n'utilisait pas une bonne terminologie.
Merci à vous tous pour ce coup de main fort appréciable.
Matt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
672
R
  • Question Question
Réponses
3
Affichages
102
regis6460
R
Réponses
4
Affichages
225
Retour