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 :

VLookup (ou RechercheV mais en VBA)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 VLookup (ou RechercheV mais en VBA)
    Dans le feuille "Lst", j'ai deux tableaux, le premier en H4:H14, le second en J4:J14, soit NoColonne + 2
    Si j'utilise le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextBox5 = WorksheetFunction.VLookup(CDbl(CDate(Rec.Cells(NoLig, 5))), _ 
    Lst.Range("H4:H14"), 1, False)
    ... le code fonctionne mais me trouve la valeur cherchée, évidemment (!)

    Alors je mets la colonne de la valeur que je souhaite afficher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextBox5 = WorksheetFunction.VLookup(CDbl(CDate(Rec.Cells(NoLig, 5))), _
    Lst.Range("H4:H14"), 3, False)
    ... j'ai alors l'erreur "Impossible de lire la propriété VLookup de la classe WorksheetFunction."

    Comme j'ai également des données sur la colonne I, je teste avec 2 : Même punition.

    J'ai testé :
    - en supprimant l'instance de la feuille
    - en remplaçant valeurs et adresses par des variables
    - en ressaisissant les dates
    - avec False
    - sans False
    - en ajoutant Application à WorksheetFunction
    - en l'enlevant...
    - ... etc.
    Deux heures que je teste !

    Quand VLookup cherche la donnée sur la même colonne que celle sur laquelle se trouve la valeur fournie, ça fonctionne dans tous les cas de figures.
    Donc, il la trouve !

    Quand je lui demande de chercher "ailleurs" : Erreur !

    Donc... si quelqu'un sait quelque chose que j'ignore, alors qu'il le dise ! Zut ! M...de ! Quoi !

    Un grand merci d'avance au dépanneur !

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour Ouskeln'or

    essaye cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextBox5 = WorksheetFunction.VLookup(CDbl(CDate(Rec.Cells(NoLig, 5))), _ 
    Lst.Range("H4:J14"), 3, False)
    Bon dimanche

  3. #3
    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
    Super wilfried
    ... et du premier coup !
    Mais alors, l'aide en ligne m'aurait menti ?
    table_matrice est la table de données dans laquelle est "exécutée la recherche de la valeur."
    (depuis, j'ai relu la suite avec tes yeux )
    Un grand merci, je n'en aurais pas dormi de la nuit

    Edit
    En fait, j'avais encore une erreur sur certaines lignes. Toujours la même erreur sur les mêmes lignes. Après divers tests, j'ai enfin trouvé, il faut retirer False.
    Maintenant, ça fonctionne. Enfin, jusqu'au prochain bug...
    Ce qui ne retire rien à mes remerciements

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    le false n'est pas une erreur, il permet de ne pas trier la base de donnée, mais recherche la valeur exacte

    le true demande un tri de la base, car lorsqu'il trouve une valeur superieure, il donne re resultat de la valeur precedent (utilisée le plus souvent pour une recherche par pallier exemple : remise selon quantité)

    Bon début de semaine

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 18/06/2014, 14h12
  2. [XL-2003] VLookup (ou RECHERCHEV) sur colonne de gauche
    Par Peanut dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/01/2010, 23h08
  3. recherchev en langage VBA
    Par choudoudou15 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/05/2009, 07h35
  4. Caractère joker comme en SQL (%) mais en VBA
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/01/2009, 11h16
  5. Utiliser SQL = (Comme "blabla*") mais En VBA sur I
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/10/2005, 19h30

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