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 multiple ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 714
    Par défaut vlookup multiple ?
    Bonjour,

    je souhaiterais retrouver des tableaux de données à partir d'une fonction comme vlookup. Je m'explique :

    J'ai trois colonne, EAN, quantite et prix. Il peut y avoir plusieurs ean dans la liste. Comment faire pour obtenir les différentes valeurs par code ean ?

    J'ai essayé le VLOOKUP mais il me retourne seulement la première valeur.

    Qui peut m'aider ?

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Tu veux faire la somme des quantités * prix pour un EAN (c'est quoi d'ailleurs un EAN ?), c'est bien ça ?

    Soit tu rajoutes une colonne quantités * prix et tu fais un SUMIF sur cette colonne et la colonne des EAN.
    Soit si tu ne veux pas rajouter de colonnes, tu peux faire la même chose mais avec une formule matricielle.

    Je t'écris les formules dès que tu m'as confirmé que j'avais bien compris ton problème.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    La ligne 1 contenant les entêtes et le code à rechercher étant en F2. Les données sont sur Feuil1 et les résultats sur feuil2. Sur Feuil2 en A2, mets la formule matricielle (à valider avec Ctrl+Maj+Entrée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(Feuil1!$A$1:$A$11;PETITE.VALEUR(SI(Feuil1!$A$2:$A$11=Feuil2!$F$2;LIGNE(Feuil1!$A$2:$A$11));LIGNE(A1));1);"")
    Reproduire vers le bas.
    Pour les autres données, utiliser la même formule en changeant la plage de l'INDEX de début de formule. Agrandir aussi la plage de données.

  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je crois que je viens de comprendre ce que tu voulais grâce à Daniel. Tu veux recopier à un autre endroit toutes les données correspondant à un code EAN donné.

    Chez moi la solution de Didier n'a pas fonctionné (sans doute EXCEL2003 en cause). Du coup, une autre proposition :

    Même contexte : sur Feuil1, EAN en colonne A, quantité en colonne B, prix en colonne C. Données à partir de la deuxième ligne.

    Sur Feuil2, je mets en A1 l'EAN à recopier. quantité et prix en B1 et C1 respectivement.
    en A2, la position de la première occurence de l'EAN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV($A$1;Feuil1!A2:A65536;0)
    en A3 et que l'on peut dérouler ensuite, la position de l'occurence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV($A$1;INDIRECT("Feuil1!A"&(A2+2)&":A65536");0)+A2
    On se retrouve donc avec les positions des différentes occurrences de l'EAN sur la première colonne, il ne reste plus qu'à dérouler sur les autres la formule suivante entrée initialement en B1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Feuil1!$B$2:$C$65536;$A2;COLONNE()-1)

  5. #5
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 714
    Par défaut
    Bonjour,

    merci à vous deux. Je veux retirer les valeurs respectives des différents EAN qui peuvent être en doublons; Le VLOOKUP ne retourne que la première occurence. Je vais regarder ce que fait EQUIV.

Discussions similaires

  1. [XL-2010] Vlookup multiple résultats
    Par totor6789 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/01/2013, 17h44
  2. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  3. formulaire choix multiple
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/02/2003, 18h59
  4. Création multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/10/2002, 10h17
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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