Rechercher une valeur dans plusieurs plages et afficher son nom

PBC -  
Excel-worker Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   -
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

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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
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
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
Excel-worker Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   58
 
Bonjour,

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

Cdlt
0
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
Excel-worker Messages postés 589 Date d'inscription   Statut Membre Dernière intervention   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