Function.VLookup Aide please

Bonjour a tous,

Vous m'avez déjà pas mal aider dans mon projet par la lecture des posts précédent et en répondant a quelques questions que je vous ais déjà poser mais la je but et vous m'aiderais probablement a trouver une solution.

Voila. j'ai une grosse base de donnée de + de 30 000 lignes.

et je souhaite faire une recherche verticale sur chaque ligne et sur la 5eme colonne et indiquer dans la colonne 35 le résultat de la recherche. Les donnée de la recherche se trouve sur un autre onglet nommé "DATA".

Jusque la tout va bien.

Sauf qu'une particularité de cette fonction implique que le contenu de 5eme colonne doit nécessairement être présente dans les donnée de l'onglet "DATA".

Sauf que le contenu de la 5eme colonne n'est pas forcement connu car extraite depuis un useform utilisé sur un ordinateur distant.

Du coup si le contenu n'est pas référencée dans "DATA" la recherche ne peut pas se faire et la macro plante.

        
For i = 6 To Range("A1") + 5
    If Cells(i, 5) = "" Then
        Cells(i, 36) = "Non Défini"
        Else
        Cells(i, 36) = WorksheetFunction.VLookup(Cells(i, 5), Sheets("DATA").Range("AB3:AE28"), 2, False) 
    End If
Next

je veux absolu avoir un résultat exact raison pour laquelle la dernière condition de la fonction est "False"

Ce que je cherche a faire c'est indiquer le résultat de la recherche verticale pour chaque valeur connu (de type numérique) et remplir de vide la 35eme colonne si le contenu de la 5eme colonne n'est pas connu dans la base.

Je ne sais pas si j'ai été clair.

L'idée en faite serait de faire une condition du genre :

For i = 6 To Range("A1") + 5
   If Cells(i, 5) = "" Then
       Cells(i, 36) = "Non Défini"
       Else
       If WorksheetFunction.VLookup(Cells(i, 5), Sheets("DATA").Range("AB3:AE28"), 2, False) = True Then
           Cells(i, 36) = WorksheetFunction.VLookup(Cells(i, 5), Sheets("DATA").Range("AB3:AE28"), 2, False) 
           Else
           Cells(i, 36) = ""
       End If
   End If
Next

Mais j'aurais besoin d'aide pour l’écrire proprement.

Merci d'avance a tous ceux qui se pencheront sur cette question.

@+

Safcot

Bonjour

Une méthode mais sur qu'elle soit la plus propre (mon avis je serai passé par un Find ou un Match)

  On Error Resume Next
  For i = 6 To Range("A1") + 5
    If Cells(i, 5) = "" Then
      Cells(i, 36) = "Non Défini"
    Else
      Cells(i, 36) = ""
      Cells(i, 36) = WorksheetFunction.VLookup(Cells(i, 5), Sheets("DATA").Range("AB3:AE28"), 2, False)
    End If
  Next i
  On Error GoTo 0

ca marche merci ^^

Rechercher des sujets similaires à "function vlookup aide"