vba RECHERCV (VLookup) avec condition si (if)

  • Initiateur de la discussion Initiateur de la discussion debidebo67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

debidebo67

Guest
Bonjour,

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("D20😀25")
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.
 

Pièces jointes

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
 

Pièces jointes

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!

J'ai donc remplacé :"" par Nothing

Else
Sheets("Dtest").Range("D" & i).Value = Nothing

Merci beaucoup, c'est parfaitement opérationnel !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
715
Réponses
7
Affichages
829
Retour