Vlookup: Error 1004 aléatoire
Bonjour,
J'effectue une fonction Vlookup pour voir si une référence est déjà présente ou non dans un tableau. Si oui je prends l'adresse du Vlookup et j'écrase si non je vais à la dernière ligne et je colle puis je trie....
Le problème c'est que ça marche nickel quand je joue avec des référence à 4 chiffres (ex: 1004 ) Puis quand je passe avec des références alpha numérique ça marche de temps en temps et des fois pas du tout ça me met error 1004 directement à la ligne de mon vlookup au tout début....
Auriez-vous une solution ou une piste à mon problème?
Voici mon code, le bug se passe à là ligne en gras souligné
If IsError(Result) Then
' S56 = pas trouvé
osheetEN.Range("S56").Value = "pas trouvé"
Else
' trouvé on poursuit
osheetEN.Range("S56").Value = Result
End If
C'est juste une solution proposée sur internet pour mon problème alpha numérique mais ça ne fonctionne pas
Dim Dern As Long
Dim Result As Variant
Dim osheetCA As Worksheet
Dim osheetRE As Worksheet
Dim osheetEN As Worksheet
Set osheetEN = Sheets("Entry01")
Set osheetCA = Sheets("Calcul_U")
Set osheetRE = Sheets("Resume")
' Recherche Vlookup
Dern = osheetRE.Range("B" & Rows.Count).End(xlUp).Row
Result = Application.WorksheetFunction.VLOOKUP(osheetCA.Range("C1").Value, osheetRE.Range("B9:B" & CStr(Dern)), 1, 1)
If IsError(Result) Then
' S56 = pas trouvé
osheetEN.Range("S56").Value = "pas trouvé"
Else
' trouvé on poursuit
osheetEN.Range("S56").Value = Result
End If
' Si Ref Locac inséré = Ref Vlookup ---> Local existant ---> Importer ou Rentrer nouveau local?
If osheetEN.Range("S56").Value = osheetCA.Range("C1").Value Then ' ... je continue ce que j'ai à faire ^^
' On trouve l'adresse de la recherche Vlookup
Set FindRange = osheetRE.Range("B9:B" & CStr(Dern)).Find(What:=osheetEN.Range("S56").Value, LookIn:=xlValues, lookat:=xlPart)
If Not FindRange Is Nothing Then
osheetEN.Range("S50").Value = FindRange.Address
End If
Ligne = osheetEN.Range("S51").Value
osheetRE.Range("B" & CStr(Ligne)).Value = osheetCA.Range("C1").Value
osheetRE.Range("C" & CStr(Ligne)).Value = osheetCA.Range("C2").Value
osheetRE.Range("D" & CStr(Ligne)).Value = osheetCA.Range("G19").Value
Else
Dern = osheetRE.Range("B" & Rows.Count).End(xlUp).Row
Dern = Dern + 1
osheetRE.Range("B" & CStr(Dern)).Value = osheetCA.Range("C1").Value
osheetRE.Range("C" & CStr(Dern)).Value = osheetCA.Range("C2").Value
osheetRE.Range("D" & CStr(Dern)).Value = osheetCA.Range("G19").Value
osheetCA.Range("I10") = Dern
osheetRE.Activate
osheetRE.Range("B9:D" & CStr(Dern)).Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
osheetCA.Activate
End If
Merci d'avance,
Thomisi
Bonjour,
retirer de la ligne en question juste .WorksheetFunction …
Deux heures que je suis à la recherche de la petite subtilité avec les types de variables et autres.... Je n'avais pas le recul nécessaire
Mais toi Marc L on ne te la fait pas oO
Un grand merci,
Thomisi