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