Application d'une formule matricielle en vba avec des variables ligne/colonne
Bonjour (et bonnes vacances pour ceux/celles qui y sont déjà),
Je souhaite optimiser un "très" lourd fichier créé par un trés gentil stagiaire aujourd'hui parti vers de nouvelles aventures ;)
En effet, le truc fait juste plus de 20Mo et j'ai tout le temps de déjeuner, boire un café et faire un tour quand il tourne.
Ce fichier comporte de nombreuses formules matricielles dont celle ci-après que j'ai simplifiée :
{=RANG.POURCENTAGE.INCLURE(SI($G:$G="Issuer Reco";$H:$H;"");$H3))} que l'on pourrait même simplifier jusqu'à {=RANG.POURCENTAGE.INCLURE($H:$H;$H3)}.
Lorsque je retranscris cette petite chose dans un sub, j'obtiens un résultat satisfaisant sur une cellule avec :
Code:
1 2 3
| Sub Test()
Issuer_Reco.Cells(3, 41) = Evaluate([PERCENTRANK.INC($H:$H,$H3)])
End Sub |
Mon problème est que je n'arrive pas à retranscrire la partie de la colonne $H:$H et de la cellule $H3 avec des variables afin des les incorporer dans une boucle.
Le truc tout bête pour faire le recalcul en matriciel (je ne veux que le résultat dans la cellule et non une formule) ligne par ligne avec selon les cas changement de la colonne (matrice) de référence du genre :
Code:
1 2 3 4 5 6
| Sub Calculs_Level2()
Dim i As Integer
For i = 3 To Issuer_Reco.Cells(Rows.Count, 1).End(xlUp).Row
Issuer_Reco.Cells(i, 41) = Evaluate([PercentRank.INC($H:$H,i)])
Next i
End Sub |
Selon les cas, le résultat me renvoi #NOM? (dans le cas présent) ou #VALEUR! si je fais :
Code:
1 2 3 4 5 6
| Sub Calculs_Level2()
Dim i As Integer
For i = 3 To Issuer_Reco.Cells(Rows.Count, 1).End(xlUp).Row
Issuer_Reco.Cells(i, 41) = Evaluate([PercentRank.INC($H:$H," & i " &)])
Next i
End Sub |
Je suis certain que cela me crève les yeux, mais là... :calim2: j'ai aussi besoin de vacances (bientôt :P)
Un grand MERCI par avance pour votre précieuse aide.
Très bonne fin de journée à toutes/tous