Bonjour,
Je dois faire qqch d'assez simple : dans une colonne de ma Sheet1, je dois insérer des formules vLookup avec un code VBA. Ces formules vLookup font référence à une plage de la Sheet2 (ses 4 premières colonnes, A à D).
J'ai deux façons de faire :
xlBook.Sheets("Sheet1").Range("P2:P10000").FormulaR1C1 = "=VLOOKUP(RC[-3],Sheet2!C[-15]:C[-12],3)"
Ici on retrouve les colonnes de Sheet2 relativement à là ou on met la formule de sheet1 (c'est dans la colonne P, donc les colonnes A à D vont de -15 à -12). Ca marche, mais avec beaucoup de lignes ça devient long à executer.
Méthode 2 :
xlBook.Sheets("Sheet1").Range("P2:P10000").FormulaR1C1 = "=VLOOKUP(RC[-3],Sheet2!A:D,3)"
Ici A à D est codé en dur. Ca va beaucoup plus vite, mais quand j'ouvre ma feuille ensuite je vois "#NAME?" dans les cellules. Pourtant la formule est juste, et si je clique dans la barre de formule et que j'appuie sur entrée la bonne valeur apparait.
Est il possible :
- de faire tourner la méthode 1 plus vite ?
- de débuguer la méthode 2 ?
Merci pour vos idées
Partager