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 :

Chercher les éléments d'une liste dans une autre liste avec VBA [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Chercher les éléments d'une liste dans une autre liste avec VBA
    Bonjour à tous,

    Je suis nouveau sur VBA et je m'arrache un peu les cheveux sur un problème qui ne me semble pourtant pas très violent :
    J'ai une liste contenant des références dans un onglet et une autre liste plus longue dans l'onglet suivant avec plusieurs références dont certaines présentes sur le premier onglet et des valeurs chiffrées associées aux références en question.
    Mon objectif serait de faire une fonction calculant la somme des valeurs associées aux références listées dans le premier onglet.
    Je ne suis pas sûr d'être très clair mais j'espère que l'exemple en pièce jointe le sera davantage.
    Ici les références sont des prénoms, et mon objectif et de calculer la somme dépensée par Jean Damien, François et Marie à eux 4.

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Je n'ai pas ouvert ton fichier mais il me semble que ça un calcul qui pourrait se faire sans VBA en utilisant juste des RECHERCHEV.

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    comme le VBA est inutile pour ce besoin car une simple formule de calculs d'Excel est suffisante via SOMME.SI par exemple
    et comme tu es étudiant, sans connaître le cadre de tes cours, on risque de t'apporter une solution hors contexte
    te rapportant un beau zéro !
    Un étudiant a dû se retaper son UV l'année suivante suite au zéro obtenu via mon code pourtant totalement fonctionnel …
    Commencer aussi par les règles du forum !

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses. Je suis bien conscient que ce problème ne requiert pas l'usage de VBA mais j'ai grandement simplifié le sujet, qui s'intègre en fait dans un montage plus complexe et impliquant de nombreux autres critères. Mon document fonctionne pour l'instant grâce à des fonction simples mais extrêmement rigides, ce qui me pose un problème car ce document doit pouvoir évoluer de manière plus flexible. Quant à l'interrogation sur un éventuel 0 pas de soucis pour ça puisque j'ai besoin de cette information dans le cadre de mon stage mais merci de vous en être inquiété

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par bettercallbob Voir le message
    j'ai grandement simplifié le sujet, qui s'intègre en fait dans un montage plus complexe et impliquant de nombreux autres critères.
    Sans les informations nécessaires, on risque de tourner en rond longtemps avant de trouver la solution adéquate.

    Mon document fonctionne pour l'instant grâce à des fonction simples mais extrêmement rigides,
    Es-tu sûr que du code VBA ce soit plus souple ?

    Si j'ai bien compris, ce que tu souhaites c'est, pour chaque ligne d'une liste, trouver la référence unique correspondante d'une autre liste et en rapporter la valeur dans la première liste pour pouvoir, ensuite, faire la somme de toutes ces valeurs.
    C'est ça ?

    Il faut que tu définisses une variable de type Range.
    Tu fais une boucle (le plus simple est For to) qui scrutes toutes les lignes de ta première liste.
    Pour chaque ligne, tu lances une recherche de la référence avec un Find sur un Range qui référence la colonne contenant les références dans la seconde liste et tu mets le résultat dans la variable Range dont je parlais au début.
    Tu vérifies si le contenu de la variable n'est pas Nothing (si la recherche a été fructueuse).
    Si c'est le cas, tu utilises le numéro de ligne de cette variable avec sa propriété Row pour récupérer la valeur de la liste source et la placer dans la liste cible avec un simple Range = Range.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Peut être en effet que j'aurais dû donner plus d'informations pour donner plus de sens à ma demande. Cela dit j'ai trouvé une solution efficace et qui tourne avec une boucle for to (c'est ce que j'essayais de faire depuis le début mais un problème d'ordre des commandes s'était glissé par là et il est enfin résolu).
    Je suis aussi assez confiant qu'une fonction faisant appel à quelques plages dynamiques nommées au préalable sera plus souple que les très nombreuses lignes de critères qui servaient à alimenter les fonctions base de données que j'utilisais jusqu'ici.

    Merci beaucoup pour votre aide.

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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