Bonjour à toutes et à tous,
Voici une procédure qui insère la formule suivante dans une cellule (E17) en Feuil2
Sub Formule()
Dim a As String
Dim b As String
b = Feuil1.Range("B65536").End(xlUp).Row
a = Feuil1.Range("A65536").End(xlUp).Row
Feuil2.Range("F15").Formula = "=INDEX(Feuil1!A2:B" & b & ",MATCH(Feuil2!E15,Feuil1!A2:A" & a & ",0),MATCH(""Nb"",Feuil1!A1:B1,0))"
End Sub
La formule qui en résulte est la suivante:
=INDEX(Feuil1!A2:B33;EQUIV(Feuil2!E15;Feuil1!A2:A33;0);EQUIV("Nb";Feuil1!A1:B1;0))
On voit que la plage de recherche en Feuil1 a été définie à (A2:B33) et (A2:A33) grace aux 2 variables a et b qui définissent la dernière ligne de la colonne correspondante.
Jusque là tout va bien, je n'ai plus qu'à saisir manuellement une valeur en Feuil2 cellule E15 pour
que la formule me renvoi une autre valeur en F15.
Cependant, mon problème est le suivant:
Sachant que cette formule est insérée une fois et que je ne souhaite pas y revenir, quelle fonction dois-je ajouter
dans ma formule pour que la plage(Feuil1!A2:B33 et Feuil1!A2:A33) varie en fonction des ajout de lignes?
Sauf erreur, il me semble que la fonction DECALER serait adaptée à cette problèmatique....
Hélas, je ne sais pas comment ajouter cette nouvelle fonction dans ma formule.
D'autant plus que c'est VBA qui ecrira la formule.
J'ai joint un fichier pour plus de précision.
D'avance merci de votre aide.
à +
DAVIDRUN