Vlookup 2 fichiers excel

anthony -  
 anthony -
Bonjour,

j'ai un premier fichier qui existe depuis des années et qui est uen base de données.
le second fichier est un report dans lequel figurent, Numéro, révision, titre, etc.

pour faire du publipostage j'ai inséré uen colonne dans la base de données dans laquelle je vais indiquer le titre de chaque document listé. pour éviter de faire les 2500 lignes une à une j'ai procédé à un vlookup mais j'ai un bug.
ça fonctionne nickel pendant uen dizaine de lignes puis un 0 apparaît. et quand je tire la formule après ce premier 0, toutes les autres lignes marquent 0 alors que cette formule là apparaît bien dans les cellules.

=IF(ISERROR(VLOOKUP(case numéro,plage des valeurs du report en commencant par la case numéro, 3),"",(VLOOKUP(case numéro,plage des valeurs du report en commencant par la case numéro, 3))
j'ai ajouté uen condition car sinon je ne savais pas si chaque numéro était recensé dans le report et ça recopiait le titre du dessus

avez vosu une idée de l'apparition de ces zéros ? sachant que le premier apparait sur un numéro bel et bien présent dans le report

A voir également:

11 réponses

cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Bonjour,

Peux-tu montrer ta cellule telle qu'elle est écrite dans ton fichier?

Tu as, à priori, oublié le quatrième argument...

Ta tableau de recherche est-il bien en adressage absolu, du type :

=RECHERCHEV(D2;$A$1:$A$5;1;0)


où D2 est la cellule qu'on cherche dans la matrice $A$1:$A$5 (en absolu)

Pour le dernier 0, je te conseille vivement F1, ou l'aide

Bon courage
0
anthony
 
bonjour et merci de ta réponse.

je crois que mon pb vient du fait que mon format de cellule est "texte" et pas général et du coup le vlookup n'arrive pas à gérer sur le long terme.
je suis dans l'obligation de mettre en texte car j'ai des numéro à 7 chiffres avec des zéros devant et si je laisse en général excel les efface. 0004525 par exemple devient 4525.
j'avais essayé en mettant en custom avec précision 0000000 mais il y avait des bug avec une macro qui s'arrêtait
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([D8:D250], Target) Is Nothing Then
If Target <> "" And Target.Offset(0, -1) <> "" Then
Range(Target.Offset(0, 4), Target.Offset(0, 7)).ClearContents
If Target.Offset(1, -1) = Target.Offset(0, -1) Then
Target.Offset(1, 0) = Target
End If
End If
End If
End Sub
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re-,

Tu dis que tu as un souci, sur la recherche....

Je te donne des pistes....

Et tu me réponds par une macro, qui n'a strictement rien à voir avec ta problématique....

Remets tes idées (et/ou ton fichier) en place, redéfinis ton problème, et ensuite, peut-être qu'on pourra t'aider...

Dans ton Msg initial,tu parles de "VLookup"....

Sans dire, que tu utilises le "VBA"....

"VLookUp" est également une fonction d'Excel, sous Office En (pour English)

Sois un peu plus précis, "Please" (en français dans le texte)

Bonne nuit
0
anthony
 
les idées sont parfaitement claires et précises
je parle bien de vlookup
je disais que j'avais mis mes colonnes en format texte par nécessité pour les numéros avec des zéros. j'avais d'abord mis en mode "personnalisé" mais une macro (celle affichée) plantait.
donc le sujet est bien du vlookup qui ne fonctionne pas. et je me dis que ça vient très certainement de ce formatage "texte" des cellules (à confirmer par les experts du forum)
et je fais de l'anglais car je bosse en version anglaise d'office
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re,

OK, et tu as bien pris en compte, sur ce que je te disais, concernant, le quatrième argument?

Pour ce qui est de la conversion "Numérique/Texte", on peut le faire, mais regarde d'abord ce que je viens de te dire....

Dans le doute, copies la formule ici....

@ te relire
0
anthony
 
je ne comprends jamais rien aux cellules absolues du coup je ne mets jamais de $
je ferai un essai lundi au boulot car ici je n'ai pas les deux fichiers
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re-,

PS, utiliser les commentaires, c'est uniquement pour donner son avis sur l'intervention d'un intervenant....

Tu as un bouton "Répondre", c'est fait pour interagir dans le fil...

Je te parle d'adressage absolu, c'est bien pour délimiter, sans incrémentation, ta plage de recherche...

Mais également, et très important, le quatrième argument....

Sans lui, tu risques d'avoir quelques surprises......
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anthony
 
le 4ème argument est utilisé pour dire si la plage est filtrée de manière croissante, non ?
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re-;

F1, mon ami, F1

Syntaxe

RECHERCHEV(valeur_cherchée;table_matrice;no_index_col;valeur_proche)

valeur_cherchée    est la valeur à trouver dans la première colonne de la matrice. L'argument valeur_cherchée peut être une valeur, une référence ou une chaîne de texte.

table_matrice    est la table de données dans laquelle est exécutée la recherche de la valeur. Utilisez une référence à une plage ou un nom de plage, par exemple Base de données ou Liste.

Si l'argument valeur_proche est VRAI, les valeurs de la première colonne de l'argument table_matrice doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHEV peut donner une valeur incorrecte. Si l'argument valeur_proche est FAUX, les éléments de la table ne doivent pas nécessairement être classés.

Vous pouvez placer les valeurs en ordre croissant en choisissant, dans le menu Données, la commande Copies assemblées et en sélectionnant l'option Croissant.

Les valeurs de la première colonne de l'argument table_matrice peuvent être du texte, des nombres ou des valeurs logiques.

La fonction ne fait pas de distinction entre les majuscules et les minuscules.

no_index_col    est le numéro de la colonne de l'argument table_matrice dont la valeur correspondante doit être renvoyée. Si l'argument no_index_col est égal à 1, la fonction renvoie la valeur dans la première colonne de l'argument table_matrice ; si l'argument no_index_col est égal à 2, la valeur est renvoyée dans la deuxième colonne de l'argument table_matrice, et ainsi de suite. Si l'argument no_index_col est inférieur à 1, la fonction RECHERCHEV renvoie la valeur d'erreur #VALEUR! et si l'argument no_index_col est supérieur au nombre de colonnes de l'argument table_matrice, la fonction RECHERCHEV renvoie la valeur d'erreur #REF!.

valeur_proche    représente une valeur logique indiquant si vous souhaitez que la fonction RECHERCHEV recherche une valeur exacte ou voisine de celle que vous avez spécifiée. Si cet argument est VRAI ou omis, une donnée proche est renvoyée. En d'autres termes, si aucune valeur exacte n'est trouvée, la valeur immédiatement inférieure à valeur_cherchée est renvoyée. Si valeur_proche est FAUX, la fonction RECHERCHEV renvoie exactement la valeur recherchée. Si aucune valeur ne correspond, la valeur d'erreur #N/A est renvoyée.

Notes

Si la fonction RECHERCHEV ne peut pas trouver l'argument valeur_cherchée et si valeur_proche est VRAI, elle utilise la plus grande valeur qui est inférieure ou égale à l'argument valeur_cherchée. 
Si la valeur de l'argument valeur_cherchée est inférieure à la plus petite valeur contenue dans la première colonne de l'argument table_matrice, la fonction RECHERCHEV renvoie la valeur d'erreur #N/A. 
Si la fonction RECHERCHEV ne peut pas trouver l'argument valeur_cherchée et si l'argument valeur_proche est FAUX, la fonction RECHERCHEV renvoie la valeur #N/A. 


Bonne lecture....
0
anthony
 
vu que mes listes sont triées par ordre croissant, je dois marquer VRAi ? mais si je marque VRAI ça ne m'indiquera pas si la valeur cherchée est absente du report mais me donnera la réponse de la valeur la plus proche
vu ce que j'ai lu, le dernier argument semble servir à plusieurs choses
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re,

Vu que tu recherches la valeur exacte, tu marques "Faux", ou "0",
comme je l'ai mis dans un des fils précédents

=RECHERCHEV(D2;$A$1:$A$5;1;0)


Fais tes tests, et reviens, si tu n'y arrives pas....
0
anthony
 
merci pour ta patience
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Re-,

De rien, mais dis-nous si cela fonctionne....

Bonne journée
0
anthony
 
OK ça fonctionne nickel maintenant.
du coup j'ai modifié tous mes fichiers faisant appel à un vlookup en intégrant ce dernier paramètre.

merci beaucoup
0