Erreur 1004 VlookUp

Bonjour,

J'ai une erreur sur le code suivant, je comprends pas ce que je dois faire ?

Sub Data()
    Dim Recup As Variant
    Dim NombreDeLigne As Integer

        NombreDeLigne = Sheets("Entrees").Range("A65536").End(xlUp).Row
        For h = 1 To NombreDeLigne
            Cells(22 + h, 1).ClearContents
            Cells(22 + h, 2).ClearContents
            Cells(22 + h, 3).ClearContents
            Cells(22 + h, 4).ClearContents
        Next h
        For i = 1 To NombreDeLigne
            Recup = Cells(2 + i, 1)
            Cells(24 + i, 1).Value = Recup
            Cells(22 + i, 2) = WorksheetFunction.VLookup(Cells(i, 1), Worksheets("Entrees").Range("$A$3:$B$" & i), 2, 0)

            Cells(22 + i, 3) = WorksheetFunction.VLookup(Cells(i, 1), Range("$A$3:$I$" & i), 4, 0)
            Cells(22 + i, 3).NumberFormat = "0.00"

            Cells(22 + i, 4) = WorksheetFunction.VLookup(Cells(i, 1), Range("$A$3:$I$" & i), 7, 0)
            Cells(22 + i, 4).NumberFormat = "0.00"
        Next i

End Sub

Une erreur 1004 sur la fonction WorksheetFunction.Vlookup, sauf que la première fois que j’exécute mon code il n'y a aucun soucis et si j’exécute le code une seconde fois c'est à ce moment là qu'il s'affiche l'erreur 1004.

Je vois pas quoi faire..

Une idée ?

Cordialement,

Bonjour mazneoo,

Sans fichier anonymisé ça va être compliqué car ton code semble correcte,

à part la déclaration de ta variable NombreDeLigne qui doit être en Long

A+

Bonjour BrunoM45,

Voici le fichier ci-joint.

Pour la variable, ça dépassera jamais 20 ou 30 lignes maximum donc, je pense que ira en Integer

Bonne journée

Re,

Vu, le nombre de ligne calculée n'est pas bon, d'où une erreur à partir de l'indice 22

Voici le code corrigé

Sub Data()
  Dim Recup As Variant
  Dim NombreDeLigne As Integer
  Dim h As Integer, i As Integer
  ' Nombre de ligne depuis le début du tableau (si toutes les lignes sont templies)
  NombreDeLigne = Sheets("Entrees").Range("A2").End(xlDown).Row
  For h = 1 To NombreDeLigne
    Cells(22 + h, 1).ClearContents
    Cells(22 + h, 2).ClearContents
    Cells(22 + h, 3).ClearContents
    Cells(22 + h, 4).ClearContents
  Next h
  ' Nombre de ligne depuis la fin de la feuille (valeurs effacées)
  NombreDeLigne = Sheets("Entrees").Range("A65536").End(xlUp).Row
  For i = 1 To NombreDeLigne
    Recup = Cells(2 + i, 1)
    Cells(24 + i, 1).Value = Recup
    Cells(22 + i, 2) = WorksheetFunction.VLookup(Cells(i, 1), Worksheets("Entrees").Range("$A$3:$B$" & i), 2, 0)

    Cells(22 + i, 3) = WorksheetFunction.VLookup(Cells(i, 1), Range("$A$3:$I$" & i), 4, 0)
    Cells(22 + i, 3).NumberFormat = "0.00"

    Cells(22 + i, 4) = WorksheetFunction.VLookup(Cells(i, 1), Range("$A$3:$I$" & i), 7, 0)
    Cells(22 + i, 4).NumberFormat = "0.00"
  Next i
End Sub

A+

Bonjour,

C'est parfait merci beaucoup !

Bonne journée

Rechercher des sujets similaires à "erreur 1004 vlookup"