Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Executer une formule en ayant ecrit l'intitule dans une autre cellule

  • Initiateur de la discussion Initiateur de la discussion _P-H_
  • 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 !

P

_P-H_

Guest
Bonjour,

J'aimerais savoir si il est possible d'executer une formule en l'ayant prealablement ecrite en format texte dans une autre cellule.
Je m'explique :
en A1 .......... IF(max>min,super,non) (la ligne de texte de la formule)
en A2 .......... =A1 (l'execution de la formule)
Cette methode ne fonctionne pas, mais je serais bien heureux de savoir comment effectuer ceci.
Merci d'avance
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Bonjour P-H,

1) Si la formule à exécuter en A1 est bien écrite en anglais (attention, utiliser la virgule et non le point-virgule pour les arguments), copier cette petite fonction VBA dans un Module (Alt+F11 et menu Insertion) :

Code:
Function EVAL(x As String)
Application.Volatile
EVAL = Evaluate(x)
End Function

Puis en A2 entrer la formule :

Code:
=EVAL(A1)

2) Si la formule en A1 est écrite en français :

- menu Insertion-Nom et définir le nom EV par la formule :
Code:
=EVALUER(Feuil1!$A$1)

- en A2 entrer la formule =EV

Nota : EVALUER est une fonction macro Excel 4.0

A+
 
Dernière édition:
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Je me demande maintenant s'il est possible d'integrer le texte de plusieurs cellules dans une formule de sommeprod, car mon nombre de conditions est variable...
exemple:
A1=(Feuille1!B2:C2=A)*(Feuille1!B4:C4=B)*(Feuille1!B5:C5=C)
A2=(Feuille1!B2:C2=A)*(Feuille1!B4:C4=B)
A3=SUMPRODUCT(A1*Feuille1!D1:F10)
Je pense que je devrais passer par VBA aussi, mais comme je ne sais pas encore vraiment l'utiliser je prefere m'en remettre a de bons conseils.
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

bonjour tout le monde

Merci à job pour tes tuyaux.
Je ne connaissez pas application.volatil
J'ai une fonction qui s'exécute quand elle veut...
Je pense que c'est la solution...
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

serait il possible d'avoir un fichier, stp?
car j'ai du mal à voir ce que represente A,B,C
pourquoi avoir une formule en A2, elle n'est pas reprise ailleurs??? sauf boulette de ma part.
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Désolé TBFT je n'ai pas de quoi faire un fichier pour le moment, mais je ferais un exemple de ce que je souhaite obtenir et je le posterais demain matin.
A+
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Bonsoir, resalut tbft,

Pour les 3 formules en A1 A2 A3 :

Code:
=(Feuille1!B2:C2=A)*(Feuille1!B4:C4=B)*(Feuille1 !B5:C5=C)
=(Feuille1!B2:C2=A)*(Feuille1!B4:C4=B)
=SUMPRODUCT(A1*Feuille1!D1:F10)

A B C sont nécessairement des noms définis dans le classeur (menu Insertion-Nom).

Sinon il faut les mettre entre guillemets...

Il suffit d'entrer en B1 la formule =EVAL(A1) et de la tirer vers le bas jusqu'à A3...

A+
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Je ne comprends ta réponse job75, je vais donc rexpliquer ce que je cherche car je me suis mal exprimé la première fois.
En fait ce que j'aimerais c'est que les conditions (.....)*(.....)*(.....) qui sont dans une cellule au format texte, cette dernière ayant sa valeur qui change, viennent s'intégrer dans une formule de sommeprod.
Car une formule de sommeprod c'est: sommeprod((condition1)*(condition2)*zone_de_recherche)
Ma zone de recherche ne change jamais dans la formule mais les conditions changeront en fonction de la valeur de l'autre cellule.
Je tente de mieux m'ecpliquer en attendant un fichier exemple demain.

cellule de choix en A1
A1=(condition1) ou A1=(condition1)*(condition2) ou A1=(condition2)
puis en A2 il y a le sommeprod qui s'effectue
A2=sommeprod(A1*zone_de_recherche)
de manière à obtenir A2=sommeprod((condition1)*(condition2)*zone_de_recherche) si on a choisit A1=(condition1)*(condition2)
a+
 
Re : Executer une formule en ayant ecrit l'intitule dans une autre cellule

Bonjour P-H, le forum,

Merci pour le fichier, mais pas bien sûr d'avoir tout compris.

A priori si vous avez une version française d'Excel, entrez en B13 la formule :

Code:
=SOMMEPROD(EVAL(B12)*C6:N6)

Si version anglaise :

Code:
=SUMPRODUCT(EVAL(B12)*C6:N6)

Remarque 1 : c'est mieux de remplacer le signe * par un point-virgule (version française) ou par une virgule (version anglaise).

Remarque 2 : vous pouvez (mais quel intérêt ?) entrer en F13 la formule :

Code:
="=SUMPRODUCT("[COLOR="Red"]&B12&[/COLOR]"*C6:N6)"

et l'évaluer en entrant en F14 =EVAL(F13)

Edit : je joins quand même le fichier.

A+
 

Pièces jointes

Dernière édition:
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…