Rechercher une valeur dans plusieurs plages et afficher son nom

PBC -  
Excel-worker Messages postés 603 Statut Membre -
Bonjour,

Je tiens une liste de factures dues dans ma feuille #1. Dans ma feuille #2 j'ai plusieurs liste de fournisseurs, avec comme entête de chaque colonne le type de fournisseur (ex: matière première, transport, fournitures de bureau, etc.)

Mon problème :

J'aimerais, lorsque j'écris le nom de mon fournisseur dans la colonne A (ex: A1), qu'Excel recherche dans ma deuxième feuille le nom de ce fournisseur et indique dans la colonne B (ex: B1) le type de fournisseur auquel il correspond.

Merci à l'avance

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Dans ta feuille #2, tes listes de noms de fournisseurs comme le type de fournisseur sont-ils sur les mêmes colonnes sur tous les tableaux ?
    0
    1. PBC
       
      Dans la colonne A, il y a en A1 "Matière première", puis en A2 et plus le nom des fournisseurs, dans la colonne B, en B1 "transport" et puis B2 et plus le nom des fournisseurs... etc..
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir,

    Une possibilité avec une fonction personnalisée :
    Function fournisseur(plage As Range)
    nom = plage.Value
    Dim Col As Integer
    Dim ligne As Long
    Col = Sheets("Feuil2").Rows(1).Find("*", , , , xlByRows, xlPrevious).Column
    For y = 1 To Col
    ligne = Sheets("Feuil2").Columns(y).Find("*", , , , xlByColumns, xlPrevious).Row
    For x = 2 To ligne
    If Sheets("Feuil2").Cells(x, y) = nom Then t = Sheets("Feuil2").Cells(1, y)
    Next
    Next
    fournisseur = t
    End Function

    ALT+F11 pour ouvrir l' éditeur VBA puis Insertion puis Module
    Copier et coller la macro dans la page blanche
    Si ta feuille 2 porte un autre nom remplacer Feuil2 par ce nom dans toutes les lignes de la macro
    Fermer l'éditeur

    La fonction s'utilise comme n'importe quelle fonction Excel à partir de son nom, syntaxe =fournisseur(adresse dela cellule avec le nom)
    exemple : en B1 mettre =fournisseur(A1)

    Tu peux rajouter autant de colonnes et de lignes que tu veux dans la feuille 2, la macro fonctionnera puisqu'à chaque fois on recherche la dernière colonne remplie (Col) puis la dernière ligne remplie de chaque colonne (ligne)

    Cdlmnt
    Via
    0
  3. Excel-worker Messages postés 603 Statut Membre 58
     
    Bonjour,

    Exemple : https://www.cjoint.com/c/EEwji42iB2g

    Cdlt
    0
    1. PBC
       
      Je viens d'essayé votre formule d'après le fichier que vous avez joint, malheureusement, le résultat semble plutot aléatoire, me donnant toujours une réponse de la ligne 1 mais pas toujours de la colonne associée à la valeur trouvée.
      0
      1. Excel-worker Messages postés 603 Statut Membre 58 > PBC
         
        Re,

        Je propose que vous nous fournissiez un fichier exemple avec ce que vous voulez en commentaire, à moins si vous avez déjà trouvé la réponse.

        Vous pouvez mettre le fichier ici : www.cjoint.com et nous donner le lien proposé.

        Cdlt
        0