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

  1. 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
  2. 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
  3. _goni Messages postés 964 Statut Membre 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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