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 :

Fonction Vlookup en VBA [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut Fonction Vlookup en VBA
    Bonjour la communauté,

    J'aurais besoin de votre aide sur la fonction Vlookup que j'aimerais insérer dans un code VBA :

    Mon besoin c'est de créer une formule sur la colonne A en fonction des données insérées sur les colonnes suivantes :

    En clair : je veux faire une RECHERCHEV(E2;'Base DA '!$A:$D;4;FAUX)

    et copier cette formule sur toute la colonne A en fonction de s'il y a ou non une données en B.

    vous pourrez trouver en pièce jointe la feuille excel.

    Merci bcp par avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 133
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Les pièces jointes ne sont pas toujours les bienvenues surtout lors d'une ouverture de discussion.
    Une bonne explication avec en plus éventuellement une illustration qui l'accompagne est largement suffisante pour être compréhensible par les contributeurs.

    Pour répondre à ta question. Toutes fonctions d'excel n'ayant pas leur équivalent en VBA, peuvent être utilisées en utilisant la fonction WorksheetFunction
    Ainsi pour obtenir en VBA l'équivalent de cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(F2;$A$2:$C$4;2;FAUX)
    Voici ci-dessous un Exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox Application.WorksheetFunction.VLookup(Range("F2").Value, Range("A2:C4"), 2, False)
    Cependant, comme en VBA, il est important pour ne pas rencontrer de problème majeur, de préciser la parentalité complète des objets, je te conseille vivement de plutôt t'inspirer de ce code ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub t()
     Dim rngLookUpValue As Range, rngData As Range
     With ThisWorkbook.Worksheets("Feuil1")
      Set rngData = .Range("A2:C4")
      Set rngLookUpValue = .Range("F2")
     End With
     MsgBox Application.WorksheetFunction.VLookup(rngLookUpValue.Value, rngData, 2, False)
     Set rngData = Nothing: Set rngLookUpValue = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 12
    Par défaut
    Bonjour Philippe,

    Merci pour vos renseignements qui répondent à une partie de ma question. En effet j'aimerais que cette formule se copie sur toute la plage lorsqu'en colonne B j'ai une information.

    Je pense qu'il faut faire une boucle mais je ne vois pas laquelle.

    Si vous avez la réponse je suis preneur.

    Merci par avance.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Personnellement (question de goût) je préfère utiliser la méthode Find qui correspondrait plus à la fonction EQUIV() d'Excel.
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    Pour moi, l'inconvénient de VLOOCKUP avec VBA, c'est qu'on n'est pas sûr du type de donnée renvoyée et qu'on doit donc mettre la variable qui recueille le résultat en Variant, ce qui peut ensuite poser des problèmes dans le traitement.

    Find, on est sûr que ça renvoie un Range, même si le résultat est Nothing (ce qui n'est qu'un Range particulier).
    Pour moi, c'est plus clair et plus simple à traiter.

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

Discussions similaires

  1. Problème fonction Vlookup avec VBA
    Par mrmouche30 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2018, 15h03
  2. [XL-2010] Fonction Vlookup en VBA ne marche pas: erreur execution 9
    Par jgresse1025 dans le forum Macros et VBA Excel
    Réponses: 89
    Dernier message: 02/04/2015, 14h10
  3. [XL-2007] Fonction Vlookup VBA
    Par eric4459 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2014, 18h02
  4. [Toutes versions] Problème pour Coder la fonction vlookup/recherchev en VBA
    Par alexandra1989 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/02/2012, 19h54
  5. [VBA-E]Fonction vlookup et chemin d'accès fichier
    Par rustic51 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/06/2006, 23h01

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