Expliciter une formule Indirecte

Bonjour à tous,

Tout d'abord merci beaucoup à ceux qui prendrons le temps de lire mon post et d'y répondre.

Utilisateur occasionnel d'Excel, débutant sur VBA, j'aime m'en servir pour me faciliter la vie et celle de mes collègues bien que ne travail pas du tout dans le secteur (nous sommes une agence d'architecture).

J'ai déjà posté deux ou trois fois ici dans ce cadre et y ai à chaque fois trouvé une solution.

Mon problème général est le suivant:

Je souhaite expliciter via VBA une formule qui utilise les fonction Indirect et somme.si

Pour illustrer mon problème, je vous joins un fichier exemple:

8test-certif.xlsm (44.86 Ko)

J'ai dans un premier onglet, un tableau (LOT01M) comprenant des lignes détaillant des avenants. Dans mon second onglet, je souhaite faire les sommes regroupées par avenants. Sur excel, j'ai donc combiné les fonction somme.si et Indirect afin d'aller chercher les valeurs qui m'intéresse dans le bon tableau (ici LOT01M)

En résulte une formule qui peut etre assez barbare pour les utilisateurs occasionnel d'excel. Et puis, cette formule ne fait pas apparaitre les cases qui sont au final prises en compte pour la sommes.

J'aimerais pouvoir transformer cette formule en "cellule + cellule +...+"

En fait je voudrait via VBA que ma formule "complexe" qui permets de trouver les bonne cases a sommer serve seulement à "trouver" ces cases, et que ensuite ce soit une formule de somme classique qui soit rentrée dans la cellule.

Dans mon fichier exemple, en fond orange ma formule "complexe" et en vert ce à quoi j'aimerai arriver.

J'espère avoir été clair,

N'hésitez pas à revenir vers moi pour toutes précisions.

Je vous remercie pour le temps et l'intérêt que vous m'accorderez.

Bonne journée,

Baptiste

Bonjour Baptiste

Perso, je ne comprends pas bien la demande

Le principal n'est-il pas que la formule ramène la bonne valeur !

Ceci dit, pourquoi ne pas mettre tout simplement

=SOMME.SI(LOT01M[Type];K20;LOT01M[Montant HT])

Plus explicite, plutôt que de passer par un indirect ?

A+

Bonjour JExceL2fr,

Merci beaucoup pour ton retour.

Ta solution simplifie dans ce cas, mais en fait, mon fichier complet comprend beaucoup de tableaux différents (Lot01M, Lot02M, Lot03M etc..), d'onglets..

Pour ce qui est de clarifier ma demande:

Mes collègues sont un peu phobiques de excel et parfois pas super ordonnés. J'aimerai donc que l'opération trouve les bonnes cellules à additionner (en fonction de tout un tas de choses, le numéro du lot, le nom du tableau, la colonne du tableau etc..) mais que ce qui se renseigne dans la cellule soit une addition simple afin que les plus novices puissent voir clairement quelles cellules sont calculées et qu'ils puissent éventuellement la modifier simplement (ajouter une valeur qu'il auraient oubliée, supprimer un termes etc..)

J'ai dans mon fichier exemple simplifié au maximum mon problème et je pense pouvoir extrapoler la solution au reste de ma feuille que je n'ai pas complétée pour ne pas alourdir le sujet.

En tout cas merci pour ton temps!

Baptiste

Re,

Ok je comprends le pourquoi de la formule
En revanche, je n'irai pas m'aventurer dans la modification d'une formule par l'addition de cellules (source à plus d'erreurs encore)

Surtout qu'il existe dans le menu "Formules" -> Groupe : "Vérification des formules", le menu "Evaluer la formule"
Qui indique exactement ce que fait Excel dans son calcul avec les références indiquées

Désolé, bonne chance

Re,

Merci pour ton retour, je ne connaissais pas "evaluer la formule", en effet très pratique pour moi qui me replonge parfois sur ce sujet à plusieurs semaine d'intervalle et qui ai oublié comment la formule fonctionne!

Par contre, encore trop compliqué pour mes collègues je craint ^^

En tout cas merci pour tes échanges, je continue de patienter pour voir si quelqu'un à une solution à mon problème!

Bonne journée,

Baptiste

Bonjour à tous,

J'ai trouvé une solution en passant par VBA, via du code "très bourrin" je suppose, mais qui me donne le résultat que je voulais.

Merci quand même pour votre temps!

Salut Baptiste,

N'oublie pas que tu es sur un forum d'entraide si tu as la solution, il est bien de la partager même si le code est "bourrin"

Ne soit pas égoïste et pense à celui qui comme toi, aura le même souci

3test-certif.xlsm (51.59 Ko)

Bonjour à tous,

Pourquoi pas un simple TCD ?

image

Là il faut l' Actualiser manuellement mais tu peux l'automatiser sur activation de la feuille.

eriiic

Bonjour à tous,

Une proposition avec power query.

Pour tester, un exemple avec plusieurs lots serait un plus.

Cordialement

11test-certif.xlsm (49.95 Ko)

Bonjour à tous,

Désolé pour le silence de quelques jour.

En essayant de l'expliquer ici mon problème cela ma permis de mettre les choses au clair dans am tête et de comprendre ce que je voulais "expliquer" à VBA.

En gros, j'ai des données public à mon modules comme le nom de la feuille, le numéro etc.. Ce sont ces données que j'utilisait dans mes fonction indirect. J'ai ensuite fait plusieur public sub (afin de ne pas me perdre dans un grand sub) pour chaques cases ou plages dans lequel je répliquais le principe d'une fonction indirecte en utilisant une variable string dans laquelle je concatène mes données public pour former la formule voulue.

J'arrive exactement à ce que je voulais même si je me doute que la manière n'est pas optimale.

Le but ici étant d'initialiser les formules mais de les laisser facilement compréhensible et modifiable par mes collègues.

Pour les curieux ou ceux qui rencontreraient un problème similaire, je vous joint mon fichier de test!

Merci à tous,

Bonne journée.

Rechercher des sujets similaires à "expliciter formule indirecte"