Bonjour,

Je cherche à passer la formule suivante en VBA avec une variable sans utiliser l'enregistreur de Macro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=IF(ISNA(VLOOKUP(G2;'CRITICAL-DOC'!A:A;1;0));"NO";"YES")

J'ai commencé avec le code suivant qui fonctionne bien pour le NO mais pas pour le YES (au lieu du YES, j'ai naturellement le résultat du VLOOKUP).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
   Dim i As Long, VL As Variant
    With Sheets("sheet1")
        i = .UsedRange.Rows.Count
        VL = Application.IfError(Application.VLookup(Range("G2:G" & i), Sheets("CRITICAL-DOC").Range("A:A"), 1, 0), "NO")
        Range("M2:M" & i) = VL
    End With
Je ne vois pas comment jouer sur la ligne Range("M2:M" & i) = VL pour obtenir YES en cas de succès du VLOOKUP...


J'ai essayé également la piste du IsError mais sans succès (j'obtiens YES dans toutes les cellules):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
   Dim i As Long, VL As Variant
    With Sheets("Sheet1")
        i = .UsedRange.Rows.Count
        VL = Application.VLookup(Range("G2:G" & i), Sheets("CRITICAL-DOC").Range("A:A"), 1, 0)
        If IsError(VL) = True Then Range("M2:M" & i) = "NO"
        Range("M2:M" & i) = "YES"
    End With
Si vous avez une piste, je suis preneur, car je n'arrive à sortir de ce code.

Merci de votre attention.

Cordialement,
Camzo