Insérer une formule contenant INDEX et MATCH dans une cellule

Bonjour tout le monde,

Je travail sur des macro excel qui agrandissent ou réduisent des tableaux existant en mettant à jour les formules contenues dans les tableaux.

Dans un des tableaux, une colonne comporte une formule contenant les fonctions INDEX et MATCH.

Ce que je souhaite c'est réinjecter cette formule dans la cellule car les plages de valeurs dans lesquelles INDEX et MATCH vont chercher leurs valeurs ont bougé à cause d'autres macro.

J'ai essayé d'utiliser cette formule mais elle ne fontionne pas :

 ws.Cells(34 +  i, 5).Formula = "=INDEX(" & Range(Cells(35, 7), Cells(34 + n, 6 + n)) & ",MATCH(B" & 34 +  i & ",$C$35:$C$" & 34 + n & ",0),MATCH(D " & 34 + i & "," & Range(Cells(34, 7), Cells(34, 6 + n)) & ",0))"

J'ai l'impression que c'est la partie

" & Range(Cells(35, 7), Cells(34 + n, 6 + n)) & "

qui pose problème.

C'est le seul moyen que j'avais trouvé pour faire référence à une plage dont la ligne et la colonne de la deuxième cellule (Cells(34 + n, 6 + n)) n'est pas fixe.

Je sais qu'il existe une fonction WorksheetFunction.Index mais ce n'est pas ce dont j'ai besoin. J'ai vraiment besoin d'insérer la formule dans la case pour que cela se mette à jour quand on change certains input.

Est-ce que quelqu'un a une idée ?

Merci d'avance,

Bonjour et

Dans un des tableaux, une colonne comporte une formule contenant les fonctions INDEX et MATCH.

Ce que je souhaite c'est réinjecter cette formule dans la cellule car les plages de valeurs dans lesquelles INDEX et MATCH vont chercher leurs valeurs ont bougé à cause d'autres macro.

Dans un tableau structuré excel, les lignes héritent des mises en forme et formules définies dans le tableau. Donc on n'a pas besoin de recopier une formule. A moins que ton tableau soit un tableau non déclaré comme tel dans excel. Dans ce cas, fais le.

Et si comme tu le fais, tu fais appel à 2 lignes (34 et 35), tu peux utiliser la fonction decaler pour avoir une fonction "structurée" également.

Bonjour et merci de prendre le temps de m'aider,

Je ne sais pas ce qu'est un tableau structuré excel je vais me renseigner sur ce sujet et voir si cela règle mon problème.

Je ne peux pas mettre le fichier comme ça sur le site. Je vais en faire une version simplifiée si ton conseil ne fonctionne pas.

Merci encore pour ton aide,

Pointe sur une valeur de ton tableau

Fais Accueil > Mettre sous forme de tableau

Ensuite retape une formule qui fait appel à une cellule

J'attends ton tableau simplifié car je pense qu'il faudra ensuite simplifier les formules

Merci je fais des tests dans la semaine pour voir si cela fonctionne et je reviens vers toi

bonjour,

Indépendamment de toute autre considération, la syntaxe correcte pour ton instruction devrait être celle-ci

ws.Cells(34 + i, 5).Formula = "=INDEX(" & Range(Cells(35, 7), Cells(34 + n, 6 + n)).Address & ",MATCH(B" & 34 + i & ",$C$35:$C$" & 34 + n & ",0),MATCH(D" & 34 + i & "," & Range(Cells(34, 7), Cells(34, 6 + n)).Address & ",0))"

Bonjour h2so4

j'opterais plus pour une formule utilisant les données d'un tableau avec des [[ ]]

Salut Steelson,

[quote=Steelson]j'opterais plus pour une formule utilisant les données d'un tableau avec des [[ ]][/quote]

c'est bien pour cela que j'ai mis

Indépendamment de toute autre considération,

Bonjour h2so4,

Merci de ta suggestion je la test demain.

Et j'essaierai tout de même la solution de Steelson qui semble plus pratique que ce que je fais actuellement !

Bonne soirée,

Rechercher des sujets similaires à "inserer formule contenant index match"