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 :

Je n'arrive pas à faire fonctioner Vlookup. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut Je n'arrive pas à faire fonctioner Vlookup.
    Bonjour à tous,
    j'ai essayé tout ce que j'ai trouvé dans les post précédents mais je n'arrive pas à faire fonctionner un Vlookup.
    J'ai une erreur 1004 : "impossible de lire la propriété Vlookup de la classe WorksheetFunction". J'ai regardé dans l'aide en ligne (il y a juste une vidéo), j'ai regardé ce que faisait l'enregisteur de macro, j'ai copié des bouts de code trouvés à gauche et à droite mais rien n'y fait.
    Est-ce que quelqu'un pourrait avoir la gentillesse de jeter un oeil d'expert dessus ? Il n'y a aucune évidence pour un débutant et je boucle sans doute sur quelque chose de simple mais je ne m'en sors vraiment pas.
    Merci beaucoup.
    PS : j'ai mis des valeurs en dur pour le test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim RelationClient As String
    Dim MoisSuivi As String
    Dim Plage As String
     
        FichierImport = "SFP_SSAAMM_Nom Projet_CODEARAMIS.xlsx"
        Workbooks(FichierImport).Sheets("KSF").Activate
        Workbooks(FichierImport).Sheets("KSF").Range("A9").Select
     
        MoisSuivi = "01/05/2011"  
        Plage = "A9:B23"
     
        RelationClient = WorksheetFunction.VLookup(MoisSuivi, Range(Plage), 2, False)

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Lorsque VLookUp fait une recherche, il ne regarde pas le contenu que tu vois affiché dans la cellule (01/05/2011) mais la vrai valeur de la date, qui est représente par un nombre décimal (40664) (la partie décimale c'est pour les heures).
    Donc tu dois convertir avant de faire ta recherche.
    attention car l'erreur qui est générée le sera du moment que la valeur recherchée n'existe pas dans la matrice, il serait donc bien de gérer ce cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub teste()
    Dim RelationClient As String
    Dim FichierImport As String
    Dim MoisSuivi As Date
    Dim Plage As String
     
    FichierImport = "SFP_SSAAMM_Nom Projet_CODEARAMIS.xlsx"
    'Inutile de selectionner pour travailler sur un onglet
    'Workbooks(FichierImport).Sheets("KSF").Activate
    'Workbooks(FichierImport).Sheets("KSF").Range("A9").Select
     
    MoisSuivi = CDate("01/05/2011")
    Plage = "A9:B23"
     
    RelationClient = WorksheetFunction.VLookup(CDbl(MoisSuivi), Workbooks(FichierImport).Sheets("KSF").Range(Plage), 2, False)
    End Sub
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut
    Merci beaucoup Qwaz mais il me dit
    Erreur d'exécution 13 - Incompatibilité de type.
    Tu as une idée de ce que cela veut dire ?

    J'ai trouvé.
    Ma date était en string, je l'ai mis en double !
    Merci Qwaz, tu es un ange !

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut J'avais lu trop vite
    Tu l'avais mis en format date, je ne savais pas que ça existait.
    Merci, tu m'as appris plein de choses en une seule fois.

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

Discussions similaires

  1. Ce que je n'arrive pas à faire ou à trouver.
    Par warwink dans le forum Windows Vista
    Réponses: 13
    Dernier message: 16/06/2006, 17h00
  2. [SQL-Server] Je n'arrive pas à faire tourner php avec Sql server (2005)
    Par bluecurve dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/03/2006, 18h50
  3. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53
  4. Très débutant : je n'arrive pas à faire fonctionner le JDK
    Par miltonis dans le forum Général Java
    Réponses: 20
    Dernier message: 19/10/2005, 21h20
  5. [RegEx] je n'arrive pas à faire deux regex(s?)
    Par sloshy dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2005, 16h21

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