Passer d'une formule à VBA

Bonjour, dans mon onglet "inventaire", j'utilise la fonction recherchv pour chercher des valeurs dans l'onglet "Don"

Cela fonctionne pas mal même si je pense que la formule meriterai d'être simplifier.

Je souhaite pouvoir faire la même chose pour chaque colonne avec VBA, en effet mon fichier d'origine fait 154 colonnes sur plus de 2000 lignes et recopier à chaque fois les formules est fastidieux et source d'erreurs.

quelq'un peut il me donner un coup de main.

merci

17evrc.zip (6.37 Ko)

Bonjour,

une proposition de solution.

Sub vasy()
Set wsi = Worksheets("inventaire")
Set wsp = Worksheets("donnees_prodchim")
dli = wsi.Range("a" & Rows.Count).End(xlUp).Row
dlp = wsp.Range("d" & Rows.Count).End(xlUp).Row
For i = 2 To dli
Set re = wsp.Range("A2:A" & dlp).Find(Range("a" & i), lookat:=xlWhole)
If Not (re Is Nothing) Then
 wsi.Range("B" & i) = re.Offset(0, 3)
 wsi.Range("C" & i) = re.Offset(0, 4)
 If re.Offset(0, 1) = "" Then wsi.Range("D" & i) = re.Offset(0, 2) Else wsi.Range("D" & i) = re.Offset(0, 1)
End If
Next i
Set re = Nothing
Set wsi = Nothing
Set wsp = Nothing
End Sub

Merci beaucoup

Rechercher des sujets similaires à "passer formule vba"