Rechercher une valeur dans plusieurs plages et afficher son nom

Fermé
PBC - 21 mai 2015 à 21:55
Excel-worker Messages postés 589 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 - 26 mai 2015 à 14:43
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
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
21 mai 2015 à 22:40
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
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 14509 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 2 janvier 2025 2 739
22 mai 2015 à 00:01
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 mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58
22 mai 2015 à 09:12
Bonjour,

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

Cdlt
0
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 mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58 > PBC
26 mai 2015 à 14:43
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