Probleme avec la fonction VLOOKUP sous vba

Dams -  
 Pocin -
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

6 réponses

Pocin
 
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
3
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
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.
2
_goni Messages postés 964 Date d'inscription   Statut Membre Dernière intervention   38
 
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
2
DeRichelieu
 
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.
1

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

Posez votre question
byby
 
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.
1
Benjîle
 
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)
1