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-03] Creation fonction appelant vlookup


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut [E-03] Creation fonction appelant vlookup
    Bonjour tout le monde,

    Pour commencer, je débute tout juste sous VBA et c'est vrai... je galere
    Je bosse sous excel 2003 et voila mon probleme:

    Depuis un formulaire rempli par le futur utilisateur, je recupere des données
    sous la forme de string.

    Ce que je souhaiterais faire:
    - Rechercher cette valeur dans un workbook fermé (depuis une matrice de cellule). Prenons l exemple : retrouver le nom d'un item.
    - Retrouver un attribut de cet item qui se trouve sur la meme ligne.
    - Le stocker dans une variable.

    Je vais devoir le faire un petit paquet de fois, donc j avais pensé a creer une fonction prenant comme argument :

    - un chemin (pour le woorkbook dans lequel je dois recherché la valeur
    - valeur (le string d'entrée qui est ma clef de recherche pour le woorkbook fermé)
    - matrice (pour le guider sans la recherche de cette valeur)
    - une variable (renvoyant la cellule contenant l'attribut de l item que je souhaite stocker)

    Puis faire appel a vlookup dans la fonction en utisant ces argument (la feuille etant la toujours la mm, je pourrais rentrer l'info a la main dans vlookup sans
    la mettre en variable).

    Bon 1. je sias pas si tout ca est possible avec une valeur comme entrée de vlookup et deuxiement, je suis bien infoutu de pondre ce code...

    Si une ame charitable se sent de me filer un coup de main, I am buying!

    Merci Beaucoup

    Salutation,

    Jean Francois

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour et bienvenue...

    Un peu de lecture?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut
    En fait c est moins delirant que ce que je pensais, ca fait une ligne de code!!!
    Ca c est super mais ce ptit code je le retourne dans tout les sens depuis 10 min et il veut pas marcher... snif snif

    Voila ca que je lui ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    labelwidth = VLookup("KLM";'C:\WL cost\label\[label.xls]Feuil1'!A:B;2;FAUX)
    KLM est bien en colonne A, et l info que je veux en colonne 2.

    Une idée?

    Merci en tt cas, elle va bien finir par marcher...
    labelwidth est déclaré avant comme un string, c est ok?

    Au fait y a les dollars sur ma formule..

    ahahah je me rapproche mais toujours pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    labelwidth = "=VLookup("HM101BLACK";'C:\WL cost\label\[label.xls]Feuil1'!$A:$B;2;FAUX)"
    Je repars a la chasse a l erreur !!!!

    JF, qui pete un cable sous VBA

    Ok c est pour stocker la fonction, completement hors sujet, je veux la valeur... VBA est un ascenseur emotionnelle malsain....

    Ok, on va transformer un peu la question,

    J ai tout essayer avec vlookup et rien n y fait, ca prend pas.
    Quelqu'un connaitrait t il la syntaxe exacte pour rechercher une valeur d un Workbook fermé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Vlookup
    svp?

    Cimer

    JF....

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Pourquoi n'essaies-tu pas le lien que je t'ai proposé? La solution proposée n'utilise pas VLOOKUP, mais elle fonctionne

    Tu peux aussi rapatrier les données via MSQuery, puis utiliser VLookup dans le classeur...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Par défaut
    Si, ton fichier suggere qq chose de tres simple pour lire les infos d un workbook fermé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Faire une RECHERCHE Verticale dans un classeur fermé:
    'Rechercher "DVP" dans la colonne A du classeur fermé et afficher la donnée correspondante de la colonne B.
    =RECHERCHEV("DVP";'C:\Documents and Settings\mimi\dossier\excel\[ClasseurBase.xls]Feuil1'!$A:$B;2;FAUX)
    Mais ca ne marche pas chez moi. Betement je me disais que vlookup et recherv etaient equivalents et prenant les mm arguments... Je sais pas si c est vrai. Je bosse sur de l excel anglais en roumanie...


    Merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Que représente labelwidth...

    Tu peux passer une formule par vba à une cellule, mais à mon avis, il n'est pas possible d'utiliser la fonction directement en VBA, car le deuxième paramètre de cette fonction requiert un objet Range valide et il n'est pas possible de créer un objet range valide sur un classeur fermé.

    Donc, cette possibilité existe en Excel (et en vba qui peut placer la formule dans une cellule), mais pas en VBA. Pour du VBA pur, tu dois utiliser la suite du tutoriel avec des objets ADODB...

    Précise ton contexte pour que l'on puisse t'aider...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. [XL-2007] creation fonction appelant divers userform et géré par une variable
    Par chrisaccess dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2014, 21h44
  2. Creation et appel de fonction avec parametre
    Par gregounnet dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 25/07/2007, 11h59
  3. DLL, fonctions appelées, fonctions appelantes
    Par kantelise dans le forum Windows
    Réponses: 1
    Dernier message: 10/05/2006, 13h26
  4. Réponses: 3
    Dernier message: 24/01/2006, 11h27
  5. Pile des fonctions appelées
    Par Freakazoid dans le forum C++
    Réponses: 4
    Dernier message: 05/08/2004, 21h32

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