VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Probleme avec la fonction VLOOKUP sous vba

Dams - Dernière réponse le 23 sept. 2008 à 15:52
Bonjour à tous,

Voila mon problème :
La macro permet dans un premier temps de créer un tableau (réalisé grace à un pivot). La suite de la macro est censé chercher dans le tableau du mois précedent les données des marques présentes ce mois-ci pour les coller sur le nouveau tableau crée. J'ai donc pensé réalisé ca avec un Vlookup... mais ca marche pas

Mon problème vient de cette ligne (celle de la recherche V) :

ActiveCell.Offset(0, 1).Value = "=VLOOKUP(Data_2!A1; 'Work'!A1:D" & lignefin_V2 & ";4;FALSE)"


Apparait un Run-Time error '1004' : Application-defined or object-defined error

Ca se trouve C tout bête... ou alors l'erreur viens d'ailleurs... mais je préfère explorer cette piste dans un premier temps

En tout cas un grand merci d'avance pour ceux qui pourront m'aider

Dams
Lire la suite 

Probleme avec la fonction VLOOKUP sous vba »

6 réponses
Réponse
+3
moins plus
J'ai utilisé ceci:

nb = Application.WorksheetFunction.VLookup(Selection.Offset(0, 1).Value, Range("liste"), 10, False)

... et ça fonctionne.

Faut s'assurer que Selection.Offset(0, 1).Value renvoie la bonne chose et que "liste" contient bien 10 colonnes.. :-s
Ajouter un commentaire
Réponse
+2
moins plus
salut Dams,

essaie ceci
ActiveCell.Offset(0, 1).Formula = "=VLOOKUP(Data_2!A1; 'Work'!A1:D" & lignefin_V2 & ";4;FALSE)"

ou ceci
ActiveCell.Offset(0, 1).Formula = "=VLOOKUP(Data_2!A1, 'Work'!A1:D" & lignefin_V2 & ",4,FALSE)"


Le .Formula, c'est sûr que ça marchera mieux que .Value ;-)
Pour le choix entre , et ; ça dépend peut-être des préférences définies sur ta machine.
Ajouter un commentaire
Réponse
+1
moins plus
J'ai eu le même problème, et tout a été résolu par l'utilisation de virgule à la place des points-virgules. Essaie ceci :

ActiveCell.Offset(0, 1).Formula = "=VLOOKUP(Data_2!A1, 'Work'!A1:D" & lignefin_V2 & ",4,FALSE)"

Dans la Worksheet, la formule sera bien affichée avec des points-virgules.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Je tombe sur le même problème.
J'ai une application Access qui génère du Excel.
Je veux mettre dans une case la formule : "=VLOOKUP(O3;COMPTE;4;0)"
mon code c'est :
xlworksheet.Cells(1, 1) = "=VLOOKUP(O3;COMPTE;4;0)"

J'ai d'ailleurs testé sans succès
xlworksheet.Cells(1, 1) .formula= "=VLOOKUP(O3;COMPTE;4;0)"

Je tombe sur le même message d'eurreur sité au dessus.
J'ai vraiment besoin de votre aide.

Merci d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

J'essaie de faire comme indiqué précédemment mais lorsque j'utilise VLOOKUP en VBA dans excel 2003, il ne reconnait pas la fonction ???

Qqn peut-il m'aider ?

Merci !

D.
Ajouter un commentaire
Réponse
+0
moins plus
Construis ta fonction avec l'enregistreur de macros ça marchera mieux.

Sinon en 2003 pour lire les données d'un tableau croisé dynamique tu as la fonction LIREDONNEESTABLEAUCROISEDYNAMIQUE . Je ne me souviens plus de l'orthographe exact mais pour la retrouver c'est simple: dans une cellule vide taper = puis cliquer sur une cellule de donnée du tableau croisé dynamique

Enfin si tu es en version française du pack office, il ne faut pas utiliser la propriété formula, mais formulalocal, qui permet de se servir de RechercheV, et non de Vlookup (formulalocal permet de taper les fonctions en français)
Ajouter un commentaire
Ce document intitulé « Probleme avec la fonction VLOOKUP sous vba » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?