Je souhaite mettre à jour uniquement les prix unitaire de la colonne D par leur ETAT dans la colonne E non validés (validé = "OK")
Ma macro fonctionne mais ne tien pas compte de la condition !?! elle me recopie tous les prix même ceux qui sont validés
Tableau :
colonne A ------colonne B------- colonne C------colonne D-------colonne E
Code-----------Désignation------Qté------------Prix unitaire------ETAT ("OK" = validé; "" non validé)
Pourriez-vous m'aider ?
Sub testRECHERCHVetRECHRCHE()
On Error Resume Next
Dim ETAT As Variant
For Each ETAT In Sheets("Dtest").Range("E20:E25")
If ETAT.Text = "" Then
For Each P In Worksheets("Dtest").Range("D2025")
P.Value = Application.WorksheetFunction.VLookup(P.Offset(0, -3).Value, Worksheets("ptest").Range("A4:B8"), 2)
Next
End If
Next
End Sub
Merci à ceux qui auront quelques instant à me consacrer.
Re : vba RECHERCV (VLookup) avec condition si (if)
Violà le fichier!
En fait ton erreur c'est que tu as mis
Code:
For Each P In Worksheets("Dtest").Range("D20:D25")
P.Value = Application.WorksheetFunction.VLookup(P.Offset(0, -3).Value, Worksheets("ptest").Range("A4:B8"), 2)
Next
dans ta boucle if.
Donc ça le test sur la première ligne, lance recherchev sur toutes les lignes, puis fait le test sur la deuxième ligne et ainsi de suite.
J'espére que tu as comprs mon explication
Simraill
Re : vba RECHERCV (VLookup) avec condition si (if)
Merci, j'ai compris.
Cependant pour Else : je souhaiterai que les prix dont l'état est "ok" ne soient pas remplacer par "" mais que la valeur affichée avant l'exécution de la macro soit la même.
Les prix est état "ok" ne doivent plus être modifiés!