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 :

Filtrer sur plusieurs feuilles avec VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Filtrer sur plusieurs feuilles avec VBA
    Bonjour,

    J'essaye de faire une application de gestion de stock. Elle contient 4 feuilles (une par famille de produit). Dans cette application sous excel, je voudrais que l'utilisateur soit capable de rechercher un produit par référence, par numéro de commande, ou encore par nom de fournisseur. Pour cela je voudrais que l'utilisateur entre sa donnée et qu'en retour il voit s'afficher sur chaque feuille uniquement la réponse à sa recherche (Ex: Si un fournisseur fourni aussi bien des boulons que des vis alors sur les deux feuilles on voit apparaitre les lignes correspondant au fournisseur. Sur les autres, la base de données n'affichent aucun résultat).
    Je n'arrive pas à coder ceci. J'ai pensé à VLookup mais alors le résultat ne sera pas retourné sur chaque feuille mais dans une MsgBox. Je ne sais pas vraiment comment faire. Pourriez-vous m'aider?

    Merci

  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
    12 977
    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 : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Idéalement, il faudrait avoir une seule feuille pour le stock toutes familles confondues. La gestion de ces données serait grandement facilitée.
    Dans le cas contraire, l'utilisation de la fonction INDIRECT combinée une ou plusieurs fonctions de recherche telles que RECHERCHEV, INDEX, EQUIV pourrait être une solution

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci j'essaierai de coder en utilisant ces fonctions et je ferai un retour pour vous dire si cela à fonctionné. J'afficherai mon code

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    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 : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Petite illustration de l'utilisation de la fonction INDIRECT imbriquée dans la fonction VLOOKUP dans un cas simple.
    Scénario
    Le but de cet exemple est de connaître le libellé et le prix d'une référence entrée en cellule A4 de la feuille nommée Feuil1.
    Les références étant soit dans la feuille nommée ProduitA soit dans la feuille nommée ProduitB, nous devrons utiliser la fonction INDIRECT pour renvoyer la référence du 2ème argument de la fonction RECHERCHEV
    Organisation des données
    1. Le classeur contient trois feuilles dont deux sont nommées [ProduitA] et [ProduitB] qui contiennent la liste des données des produits A et B
    2. La feuille nommée [Feuil1] contient les formules permettant d'interroger soit ProduitA soit ProduitB
    3. La référence aux cellules contenant les données sont nommées ProduitA et ProduitB (Utilisation du gestionnaire des noms)
    4. Pour l'exemple, toutes les références commencent par la lettre correspondant à la catégorie de produit (A, B)
    Les formules
    Pour connaître la plage nommée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(GAUCHE(A4;1)="A";"ProduitA";"ProduitB")
    Une autre option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Produit" & GAUCHE(A4;1)
    Pour chercher le libellé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV($A4;INDIRECT($B4);2;FAUX)
    Pour chercher le prix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV($A4;INDIRECT($B4);3;FAUX)
    Image des feuilles du classeur
    Nom : VLOOKUP - INDIRECT.jpg
Affichages : 380
Taille : 218,6 Ko

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci. C'est ce que je veux faire. Je vais essayer de cette façon. Merci encore! Une fois que j'ai réussi (sans problèmes je l'espère) je posterai le code.

    Je n'y arrive pas. J'ai essayé mais je n'y arrive pas. Les fonctions que vous donnez sont des fonctions Excel. Sur VBA, pour filtrer c'est la fonction AdvancedFilter n'est ce pas? Mais comment l'utiliser? Je voudrais filtrer 3 feuilles en même temps et rapporter tous les résultats sur une Feuille dédiée. Je voudrais faire ce que vous avez fait avec excel mais sous VBA en utilisant des boutons.

    Merci pour votre aide

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    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 : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sur VBA, pour filtrer c'est la fonction AdvancedFilter n'est ce pas? Mais comment l'utiliser? Je voudrais filtrer 3 feuilles en même temps et rapporter tous les résultats sur une Feuille dédiée. Je voudrais faire ce que vous avez fait avec excel mais sous VBA en utilisant des boutons
    A la lecture de la question initiale, je n'ai pas cru comprendre que le filtre avancé était la solution attendue et surtout avec la dernière phrase qui m'a induit en erreur en invoquant la fonction VLOOKUP.
    Je n'arrive pas à coder ceci. J'ai pensé à VLookup mais alors le résultat ne sera pas retourné sur chaque feuille mais dans une MsgBox. Je ne sais pas vraiment comment faire. Pourriez-vous m'aider?
    Un peu de lecture avant tout Les filtres avancés ou élaborés dans Excel et peut-être une nouvelle explication.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Ingénieur Supply Chain
    Inscrit en
    Juillet 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Supply Chain

    Informations forums :
    Inscription : Juillet 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je suis novice en VBA, je pense utiliser les mauvais termes pour m'exprimer et/ou utiliser les mauvais outils pour répondre à mes besoins.

    Je vais lire le document que vous m'avez conseillé. Suite à cela je reviendrai vers vous.

Discussions similaires

  1. [XL-2002] Recherche d'une valeur sur plusieurs feuilles avec conditions
    Par Rat-Thon dans le forum Excel
    Réponses: 4
    Dernier message: 06/12/2013, 13h26
  2. [XL-2010] RECHERCHEV sur plusieurs feuilles avec formule INDIRECT
    Par ness'excel dans le forum Excel
    Réponses: 7
    Dernier message: 02/05/2013, 16h56
  3. [XL-2007] Filtrer sur plusieurs feuilles
    Par fisio dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 13/09/2010, 00h05
  4. [VBA-E]filtre sur plusieurs Critères avec Excel
    Par Diablo_22 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2006, 21h34
  5. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 16h56

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