Appliquer automatiquement une formule d'une cellule

Bonjour,

Je n'ai qu'une connaissance assez basique d'excel et j'ai besoin d'aide pour finaliser un tableau. Le problème est que je n'arrive pas à identifier la formule à utiliser pour ce que je souhaite faire. Je vous joins un fichier (très simplifié par souci de confidentialité).

Dans la feuille B, il y a en C3 un calcul complexe appliqué au chiffre en B3.

Je voudrais que dans la feuille A, la ligne 2 applique automatiquement cette formule à chaque chiffre de la ligne 1, sans avoir à recopier en ligne 2 la formule de B3 car elle est très complexe (donc compliqué à recopier, en ajoutant le nom de l'onglet et le $) et amenée à changer.

Pourriez-vous m'indiquer quelle serait la méthode appropriée?

J'espère que mon explication est suffisamment claire.

Je vous remercie d'avance pour vos conseils,

Bien cordialement

ABJN

20test.xlsx (12.18 Ko)

Bonjour,

En A2 :

=A1*B!$C$6+B!$C$7-B!$C$8

à tirer vers la droite

Bonjour abjn, Patrice33740

A mon avis quand une formule

abjn a écrit :

est très complexe (donc compliqué à recopier, en ajoutant le nom de l'onglet et le $) et amenée à changer.

la meilleure méthode c'est de la décomplexifier

En plus clair

abjn a écrit :

Pourriez-vous m'indiquer quelle serait la méthode appropriée?

Oui

La meilleure astuce est d'utiliser (dans ton cas - mais reste adaptable à de nombreux autres) des cellules nommées

Tu as par exemple une sorte de "table" en [B]

a 2.5600

b 3.8880

c 5.2451

pour chacune des "valeurs a, b, c" tu nommes une la cellule contenant le résultat (en colonne C) par exemple calculA, calculB, calculC

puis dans l'onglet [A] ta formule devient = A1 * calculA + calculB - calculC et tu peux la tirer vers la droite parce que la formule et décomplxifiée et donc (faisant abstraction des $) facile à recopier

CQFD La décomplexification fonctionne

Patrice33740 a écrit :

Bonjour,

En A2 :

=A1*B!$C$6+B!$C$7-B!$C$8

à tirer vers la droite

Bonjour,

Merci d'avoir pris le temps de répondre mais justement, ce n'est pas ce que je voulais faire, car ma formule est beaucoup plus longue que celle de l'exemple, et elle est amenée à changer.

Je voudrais donc que, automatiquement, la ligne 2 de l'onglet A "applique" la formule enC3 sur l'onglet B avec le chiffre de la ligne 1 en B3.

Bien cordialement,

Bonsoir,

Tu ferais mieux de mettre ta formule réelle pour que l'on puisse l'évaluer... Sinon tu fais travailler des intervenants dans le "vide" et pour rien !

Tu peux également, à condition d'introduire dans ta formule en B!, sauf pour B3, la référence à la feuille, soit =B3*B!C6+B!C7-B!C8 pour ta formule actuelle (mais à faire pour toute formule que tu mettras, et :

Function FORMULEB(va As Long)
    Dim frm$
    frm = Worksheets("B").Range("C3").Formula
    frm = Replace(frm, "B3", va)
    FORMULEB = Evaluate(frm)
End Function

Tu places la fonction personnalisée ci-dessus dans un Module standard. En A!A2 tu mets :

=FORMULEB(A1)

Tu la tires sur la ligne 2.

Et tu auras les résultats calculés avec la formule sur les valeurs de la ligne 1.

(Et tu enregistres le classeur en xlsm.

Cordialement.

Bonjour (..)

@Mferrand

MFerrand a écrit :

Tu ferais mieux de mettre ta formule réelle pour que l'on puisse l'évaluer... Sinon tu fais travailler des intervenants dans le "vide" et pour rien !

ça c'est pas faux

Merci beaucoup pour vos réponses. Voici le tableau avec la formule complète! En attendant je l'ai recopié sur l'onglet A avec les B! et $, et cela fonctionne, mais je voulais savoir à tout hasard s'il y avait une solution plus simple.

10test.xlsx (14.19 Ko)
Rechercher des sujets similaires à "appliquer automatiquement formule"