IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-2003]VBA Vlookup


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut [E-2003]VBA Vlookup
    Bonjour,

    Je souhaite intégrer le résultat d'une formule dans une variable via une macro.
    Cette variable sera le nom de mon fichier.

    Seulement je n'arrive pas à prendre le résultat de la formule.

    J'ai ma feuille1 avec ma base
    J'ai ma feuille2 avec ma rechercheV

    la formule qui fonctionne sous excel :
    =RECHERCHEV(B1;feuil1!1:1048576;5;0)

    descripttion de la formule :
    recherche la valeur de la cellule B1 de la feuille 2 dans la feuille 1 sur les cellules de 1 à 1048576 et affiche le resultat qu correspond à la colonne 5.

    J'ai essayé d'écrire dans ma macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    test = Application.WorksheetFunction.VLookup(Range("B1").Value,sheets("feuil1").Range("A1:R166"), 5, False)
    Mais j'ai une erreur 1004 qui se produit.

    J'ai essayé d'autres syntaxe mais bon. j'ai declaré ma variable test en variant, en string

    Apres tout le reste marche comme des roulettes.

    Merci à vous.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comprends pas. Si tu es dans Excel 2003 tu n'as que 65536 lignes, non 1048576 ou plus
    Si ta formule Excel fonctionne, tu n'es pas dans Excel 2003.
    Tu n'as pas testé ta formule sur une version 2007 et copiée dans une version 2003 ?

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    non j'ai fait l'inverse, je suis actuellement en train de tester sur 2007 pour voir si ca marche et comme j'ai sélectionné la feuille entiere quand j'ai ecris la formule rechercheV.

    J'ai essayé en enregistrant une macro pour apercevoir ce qu'il m'ecrit.

    Mais c'est bien Excel2003 que j'utiliserai au final.

    Je pensais plus à une erreur de syntaxe de ma ligne qui elle ne va de A1 à R166, je rappelle que je n'ai aucune erreur avec ma formule rechercheV dans excel.

    Que ce soit la version 2000, 2003 ou 2007 où meme open office.

    Mon soucis c'est d'intégrer le résultat de cette formule dans une variable test.

    Encore merci

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai testé en ne remplaçant que Sheets par Worksheets et c'est ok (!?!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test = Application.WorksheetFunction.VLookup(Range("B1").Value,Worksheets("feuil1").Range("A1:R166"), 5, False)
    Mon test, si tu vois une autre différence...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Rep = Application.WorksheetFunction.VLookup(Range("A5").Value, Worksheets("Feuil2").Range("A2:F75"), 1, False)
    Tu dis

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Par défaut
    Bonjour,

    Encore un énorme merci pour ta réponse.

    Ton code ne fonctionnait pas non plus chez moi. il continuait à me mettre le message d'erreur suivant:

    erreur 1004 : impossible de lire la propriété vlookup de la classe worksheetfunction.

    Cela m'a permis de prendre du recul.

    ma table de test qui se trouve sur la feuille1 fait plus de 166 ligne.

    J'ai effectué mes essais sur une valeur qui se trouve au delà de ces 166 lignes.
    J'ai donc augmenté le nombre de ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        test = Application.WorksheetFunction.VLookup(Range("B1").Value, Sheets("feuil1").Range("A1:O10066"), 5, False)
        Range("E5").Value = test
    Et voilà ca marche parfaitement maintenant.
    Que l'on mette Worksheets ou simplement sheets ça marche.

    Désolé

    Mais lorsqu'on a la tête dans le guidon, on bloque souvent pour des conneries.

    Un énorme merci ouskel'n'or

    Encore une affaire classée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access 2003/VBA]Zorder sous VBA-Access ?
    Par cotmar dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 13h55
  2. Réponses: 2
    Dernier message: 05/06/2006, 11h59
  3. Réponses: 12
    Dernier message: 30/05/2006, 15h57
  4. Réponses: 4
    Dernier message: 29/05/2006, 13h04
  5. Réponses: 7
    Dernier message: 26/05/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo