Exécuter une formule située dans une autre cellule

Clark

XLDnaute Junior
Bonjour au forum,

la recherche ne m'ayant rien donné, je me permet de créer ce post à la recherche d'une fonction.

J'ai dans une cellule (par exemple A1) une formule mais au format texte (par exemple 2+2)
Je voudrais dans une autre cellule (par exemple A2) avoir une formule avec la fonction que je recherche qui exécuterait la formule située en A1 et m'afficherai le résultat.
Autre détail, si la formule que je veux exécuter comprend par exemple la fonction Ligne(), il faut que Ligne() me renvoi 2 et non pas 1.

Autre exemple : En A1, j'ai "le numéro de la ligne est " & Ligne()
Et en A2, j'aurai =Fonctionmagique(A1) qui me donnerai "Le numéro de la ligne est 2"
Si je l'exécute en A3, ce sera "Le numéro de la ligne est 3", etc...

J'espère avoir été assez clair.
Merci pour votre attention
Clark :)
 

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

Bonjour,

qu'est-ce que cela changerai de nommer la formule? Je ne connais pas trop ce principe de donner des noms.

Mon but, est d'avoir, au niveau d'une feuille, une seule formule placée dans une cellule.
Une formule contenant des fonctions comme INDIRECT ou LIGNE et que je voudrais appeler depuis plusieurs autres cellules de façon à ce que ces fonctions renvoient les valeurs selon la cellule appelant la formule, et non pas la cellule contenant la formule.

Tout cela pour avoir moins de choses à reprendre si la formule venait à changer.

Clark :)
 

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

Ci-joint un exemple avec quelques commentaires.

Clark :)
 

Pièces jointes

  • Exemple_Excel.xls
    21.5 KB · Affichages: 232
  • Exemple_Excel.xls
    21.5 KB · Affichages: 223
  • Exemple_Excel.xls
    21.5 KB · Affichages: 232

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

Bonjour David,

ta formule =INDEX(valeur;EQUIV(I1;clé;0)) est intéressante car je n'en connaissais pas le fonctionnement.

Ceci étant dit, le problème de cette formule comme la mienne, c'est qu'elle doit être positionnée sur chaque ligne de mon tableau. Et dans mon fichier, je vais avoir des dizaines de lignes et une bonne dizaine de feuille.

Donc mon idée était de rendre ma formule (ou la tienne peu importe) plus générique (pour ne pas avoir à la modifier sur chaque ligne) avec à l'intérieur des fonctions INDIRECT et LIGNE.
Mais cela me permet juste de recopier la même formule sur chaque ligne sans avoir à la modifier ce qui est déjà pas mail.
Mais pour aller plus loin, je cherchais un moyen de ne pas avoir à mettre cette formule sur chaque ligne mais uniquement dans une seule cellule.
Et ensuite sur chaque ligne, j'aurai une formule qui "appelerai" ou "exécuterai" cette formule générique dans la cellule en question (pour que la fonction LIGNE donne bien le numéro de la ligne ou s'exécute la formule)
C'est pour cela que je cherchais à savoir si il existe une fonction permettant cela.

Pour résumer, on aurait par exemple en A1 la formule INDEX(valeur;EQUIV(INDIRECT("I"&LIGNE());clé;0))

Et sur CHAQUE ligne de mon tableau, on aurait un truc du genre :

=FONCTIONCHERCHEE(A1) ce qui équivaudrait à exécuter la formule INDEX(valeur;EQUIV(INDIRECT("I"&LIGNE());clé;0))


J'espère être plus clair avec cet exemple, mais je répète l'idée générale qui est d'avoir une seule formule générique que l'on appelera depuis n cellules, cette formule générique devant alors s'adapter à ces n cellules (notamment le numéro de la ligne)
 

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

Merci Hoerwind,

je ne pensais pas à ce genre de solution, mais cela fait exactement ce que je voulais.

J'arrive très bien à faire marcher ta solution, par contre, il ajoute systématiquement dans la formule, le nom de la feuille dans lequel se trouve la référence. Ce qui me semble normal pour qu'il sache ou prendre les différentes valeurs.

Je voulais savoir si de la même façon que l'on peut insérer dans une formule une référence via la fonction indirect, est-ce que l'on peut faire de même pour le nom d'une feuille pour avoir quelque chose du genre :

=RECHERCHEV(INDIRECT(A$1 & "!S"&LIGNE());INDIRECT("Data!" & B$1 & ":" & C$1);2;FAUX)

Ici, dans B$1 et C$1, j'ai les références de plage de valeur (B1=K9 et C1=L20 dans mon exemple) et dans A$1 on aurait Feuil1.
De cette façon, la même formule pourrait fonctionner sur plusieurs feuilles, il suffirait alors sur chaque feuille, de renseigner les 3 cellules A1, B1 et C1.

Lorsque j'essaye de mettre cette formule dans un Nom, et que je retourne voir ensuite la formule, Excel ajoute systématiquement le nom de la feuille en plus.
Si cela n'est pas possible ce n'est pas bien grave, ta solution va déjà bien m'aider, mais sais-t'on jamais...

Clark :)
 

hoerwind

XLDnaute Barbatruc
Re : Exécuter une formule située dans une autre cellule

Re,

C'est faisable, consulte le site de Jacques Boisgontier (un petite recherche sur le Net).
Tu y trouveras un exemple qui répond exactement à ta dernière question.

Si tu ne t'en sors pas, fais signe, on essaiera de l'aider.
 

david84

XLDnaute Barbatruc
Re : Exécuter une formule située dans une autre cellule

Re;
Hoerwind :bravo pour ta solution !
Clark : l'intérêt de la formule que je t'ai proposée, ce n'est pas tant (dans ton cas) la combinaison index+equiv que le fait qu'elle soit matricielle.
Il te suffit donc de sélectionner l'ensemble de ta colonne et de modifier si besoin la formule dans la barre de formule (cliquer dans la barre de formule ou appuyer sur F2 et appuyer en même temps sut Ctrl Maj Entrée). Cette solution t'évite de tirer ta formule vers le bas.
Je préfère te le préciser pour être sûr que tu en aies compris l'intérêt.
Le plus important est cependant que tu ais trouvé ton bonheur:)
A bientôt sur le site
 

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

David84, j'ai mis ta formule de côté pour "l'étudier" un peu plus tard.

Hoerwind, merci pour le site, une vraie mine d'or. Malheureusement, je n'arrive pas à trouver; J'essaye avec des indirect, mais à chaque fois, excel me rajoute en plus le nom de la feuille.

Je n'ai pas le temps de chercher plus longuement, car je dois finir mon fichier aujourd'hui.
Ta première formule devrais déjà me faire gagner pas mal de temps.
J'y reviendrai ultérieurement pour l'améliorer.

Merci beaucoup pour ton aide encore une fois.

Clark ;)
 

hoerwind

XLDnaute Barbatruc
Re : Exécuter une formule située dans une autre cellule

Re,

Sous la pièce jointe la formule adaptée à la fonction INDIRECT().

Pour faire plus compliqué que demandé, trois valeurs adaptables :
A2 : le nom de l'onglet (automatique par formule)
B2 : la colonne contenant les valeurs cherchées (à saisir manuellement)
C2 : le tableau de recherche (à saisir manuellement).

Sur la deuxième feuille (LaDeux) les données ont été déplacées, C2 et D2 adaptés en conséquence, et c'est la même formule nommée qui renvoie le résultat.

Si les données sont toujours positionnées au même endroit dans chaque feuille, les cellules A2:C2 peuvent être supprimées et ces données saisies dans la formule de base.

Dis-nous si c'est cela que tu souhaitais réaliser.
 

Pièces jointes

  • FormuleNomméeV2.zip
    4.8 KB · Affichages: 74

Clark

XLDnaute Junior
Re : Exécuter une formule située dans une autre cellule

Ce n'est pas tout à fait cela.
Pour ce qui est de INDIRECT avec le nom de l'onglet, oui c'est bien cela.
Par contre, il semble toujours que ce soit 2 formules distinctes (bien qu'identique au niveau de la syntaxe).

Car par exemple, j'ai ajouté dans tes 2 onglets, à droite de la colonne valeur, une autre colonne valeur. Puis j'ai modifié les plages dans les 2 cellules C2 pour prendre cette nouvelle colonne en compte.
Ensuite, au niveau du premier onglet, je suis allé dans le nom Formule, pour modifier la formule et lui dire de prendre la 3 colonne dans le recherchev et non plus, la 2ème.
La formule est bien modifiée et je récupère bien les valeurs de la 2ème colonne de valeur.

Par contre, lorsque je vais dans le 2ème onglet, la formule n'a pas bougé et prend toujours la 1ème colonne de valeur.

C'est cela que je cherche à faire, une formule pour n feuilles. Si j'en modifie une alors elle doit se modifier partout, dans toutes les feuilles. Mais peut-être que ce n'est pas possible.

Clark :)
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 059
Membres
103 444
dernier inscrit
Aeggie78