Combiner un vlookup et une condition if en VBA

Bonjour à tous,

Je tente de faire un vlookup associé à une condition dans VBA mais ça ne fonctionne pas (à savoir que je débute en VBA ...) Ma colonne B contient des noms et je souhaite supprimer toutes les lignes (de 5 à 150) pour lesquelles le résultat de ma recherchev est N/A. Mais là il me supprime une ligne sur 2

Voici mon code :

Sub PMBE()

Dim PMnonBE As Long

'PMnonBE est en fait ma colonne B pour laquelle je souhaite faire le lookup pour chaque ligne

For PMnonBE = 5 To 150

Lookup = Application.VLookup(Range("B" & PMnonBE), Resources, 1, False)

' La plage Resources fait référence à une autre feuille du classeur

If IsError(Lookup) Then

Rows(PMnonBE & ":" & PMnonBE).Delete shift:=xlUp

End If

Next PMnonBE

End Sub

Merci pour votre aide !

bonjour,

si tu supprimes la ligne 1, la ligne 2 devient la ligne 1.

fais ta suppression en commençant par la dernière ligne

Sub PMBE()

Dim PMnonBE As Long
'PMnonBE est en fait ma colonne B pour laquelle je souhaite faire le lookup pour chaque ligne
For PMnonBE =150 to 5 step -1
Lookup = Application.VLookup(Range("B" & PMnonBE), Resources, 1, False)
' La plage Resources fait référence à une autre feuille du classeur 
If IsError(Lookup) Then
Rows(PMnonBE & ":" & PMnonBE).Delete shift:=xlUp
End If
Next PMnonBE
End Sub

Là du coup il m'a supprimé toutes les lignes

Cela peut-il être causé par la définition des variables ? Merci

bonjour,

c'est que la condition If IsError(Lookup) Then est vraie pour toutes les lignes.

Pourtant j'ai bien des lignes qui ne sont pas en erreur quand je fais le vlookup via une simple formule excel...

re-bonjour,

c'est que le test iserror n'est pas celui qui convient ... je t'invite à lire ma signature

regarde aussi si ta variable resources contient bien une valeur.

Bonjour,

si le problème ne vient pas du contenu de ta variable resources, il doit venir de tes données. mets-nous un fichier dans lequel on peut reproduire le problème, comme je te l'ai suggéré en te demandant de lire ma signature...

Bonjour,

Désolée pour la réponse tardive ... j'ai résolu mon souci en utilisant la formule vlookup directement dans ma sheet Excel.

Encore merci d'avoir pris le temps de lire mon sujet et d'y répondre !

Rechercher des sujets similaires à "combiner vlookup condition vba"