Re bonjour
Pas compris ça sert a quoi le dictionnaire !!! A effacer les formules pour ne garder que le résultat ? J'aurais pas de problème de minuscule tout est en majuscule dans la base que je fais Le truc c'est que comme je dois faire une base de donnée, j'ai pas envie de rallonger manuellement la formule alors que excel peu le faire avec un bouton en un seul coup
C'est juste la formule en mode macro avec la macro que j'ai mis plus haut il me sort FAUX alors que si je la fais en prenant la formule que tu as mis ça fonctionne en mode manuel.
.Range("BV2:BV" & Nblig) = FormulaArray = _
"=IF(RC[-57]<>"""",RC[-57]-IF(ISERROR(OFFSET(R1C5,MAX((R1C5:R[-1]C[-69]=RC[-69])*(R1C17:R[-1]C[-57]<>"""")*ROW(R1C5:R[-1]C[-69]))-1,12)),0,OFFSET(R1C5,MAX((R1C5:R[-1]C[-69]=RC[-69])*(R1C17:R[-1]C[-57]<>"""")*ROW(R1C5:R[-1]C[-69]))-1,12)),"""")"
Après j'ai refait avec l'enregistreur de macro il m'en sort une autre
.Range("BV2:BV" & Nblig) .FormulaArray = _
"=IF(RC[-24]<>"""",RC[-24]-IF(ISERROR(OFFSET(R1C5,MAX((R1C5:R[-1]C[-36]=RC[-36])*(R1C17:R[-1]C[-24]<>"""")*ROW(R1C5:R[-1]C[-36]))-1,12)),0,OFFSET(R1C5,MAX((R1C5:R[-1]C[-36]=RC[-36])*(R1C17:R[-1]C[-24]<>"""")*ROW(R1C5:R[-1]C[-36]))-1,12)),"""")"
Soit il me sort FAUX ou alors il va mettre 14000 partout c'est a dire le résultat de la première ligne
Pour cela ça serait quoi la bonne formule a adapter dans ma macro pour que ça fonctionne ?
J'avais une formule matricielle dans un autre fichier dans une macro ça ressemblais a ça c'est pas pour mon fichier a moi là mais c'est plus lisible qu'avec l'enregistreur de macro.
.Range("X2").FormulaArray = "=MAX(($B$2:$B$" & Nblig & "=$B2)*(Accueil!$B$3-$A$2:$A$" & Nblig & "<=180)*($P$2:$P$" & Nblig & "))"