Bonjour, comme j'effectue un traitement sur une BDD de 36700 lignes il faut que je passe à la programmation VBA car excel commence à me ralentir.
Je souhaite effectuer une fonction recherchev simple telle que mon code VBA est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Sub test()
With Sheets("drives_parsed")
    .Range("G5:G1333").Value = WorksheetFunction.VLookup(.Range("D5:D1333").Value, Sheets("COM").Range("B37;B36700"), 2, False)
End With
End Sub
Néanmoins il y a une erreur que je n'arrive pas à déboguer, avez vous une idée?

Ensuite je souhaite faire une boucle qui me permettrait d'enchainer un traitement tel que:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Sub test()
With Sheets("drives_parsed")
    .Range("G5:G1333").Value = WorksheetFunction.VLookup(.Range("D5:D1333").Value, Sheets("COM").Range("B37;B36700"), 2, False)
End With
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Sub test()
With Sheets("drives_parsed")
    .Range("H5:H1333")   'on décalle d'une colonne

.Value = WorksheetFunction.VLookup(.Range("D5:D1333").Value, Sheets("COM").Range("B37;B36700"), 3, False) ''on décalle d'une colonne
End With
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Option explicit
Sub test()
With Sheets("drives_parsed")
    .Range("I5:I1333").Value = WorksheetFunction.VLookup(.Range("D5:D1333").Value, Sheets("COM").Range("B37;B36700"), 4, False)
End With
End Sub


'................................ect jusqu'à EP (soit colonne 147) pour la feuille "drive_parsed" et 147 pour le n° de colonne de la fonction .Vlookup pour la feuille ("com")

Ce qui equivaut en excel à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INDEX(COM!D$37:D$36700;EQUIV($D$5:$D$1333;COM!$B$37:$B$36700;0))))

Voilà je vous remercie par avance pour me donner des pistes.
Jérémy