Boucle For ne parcourt pas tous les éléments
Bonjour,
J'ai deux tableaux. Le premier regroupe l'ensemble de mes clients avec les encours sur 3 ans. Le second tableau extrait le top 5 de mes clients. Les tableaux sont côte à côte. J'arrive à déterminer les 5 plus grands encours (je prends celui de la dernière année) que j'ajoute dans mon tableau des Tops. Comme je ne parviens pas à réaliser le tout dans une seule boucle, j'en créé une nouvelle. Seulement sur les 5 lignes à parcourir, seulement 2 valeurs vont être retournées lorsque j'applique INDEX, MATCH
LastRowTop = 7
Cells(LastRowTop, LastColumnTop).Select
Set sourceRange = Range(Cells(LastRowTop, 5), Cells(LastRowCl, 5))
Set DestinationRange = Range(Cells(LastRowTop, colonne), Cells(LastRowCl, colonne))
For i = 1 To 5
Cells(LastRowTop + i - 1, LastColumnTop).value = Top5_cl(i)
Next i
For i = 1 To 5
top = Cells(LastRowTop + i - 1, LastColumnTop).value
Cells(LastRowTop + i - 1, LastColumnTop).Offset(0, -11).value = Application.WorksheetFunction.Index(sourceRange, Application.WorksheetFunction.Match(top, DestinationRange, 0))
Next iLes valeurs sont bien dans le 1er tableau puisque c'est de là qu'elles sont extraites. J'ai vérifié également les variables, elles sont toutes ok
| 2020 | 2021 | 2022 | |
| Société 1 | 975206 | ||
| Société 2 | 855700 | ||
| 519630,95 | |||
| 499028,77 | |||
| 221910 |
J'y suis parvenu en contournant Application pour passer en FormulaR1C1 et ai pu revenir à une seule boucle
Cells(LastRowTop, LastColumnTop).Select
Set sourceRange = Range(Cells(LastRowTop, 5), Cells(LastRowCl, 5))
Set DestinationRange = Range(Cells(LastRowTop, colonne), Cells(LastRowCl, colonne))
ThisWorkbook.Names.Add Name:="look", RefersTo:=sourceRange
ThisWorkbook.Names.Add Name:="there", RefersTo:=DestinationRange
For i = 1 To 5
Cells(LastRowTop + i - 1, LastColumnTop).value = Top5_cl(i)
Cells(LastRowTop + i - 1, LastColumnTop).Offset(0, -11).FormulaR1C1 = "=INDEX(look,MATCH(RC" & LastColumnTop & ", there,0),1)"
Next i