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é avant quand je ne jouais qu'avec des références à 4 chiffres, je ne passais même pas par la variable Result avec la partie :

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

Rechercher des sujets similaires à "vlookup error 1004 aleatoire"