Menu

Recherche V selon 2 critères [Résolu/Fermé]

Messages postés
387
Date d'inscription
jeudi 11 septembre 2014
Dernière intervention
12 juillet 2018
- - Dernière réponse : thev
Messages postés
1747
Date d'inscription
lundi 7 avril 2008
Dernière intervention
28 novembre 2018
- 20 mai 2016 à 20:18
Bonjour,

Je voudrai faire un recherché V pour récupérer une valeur selon 2 critères : code postal et code article. Exemple : un code article est present pour plusieurs codes postaux.

Est-ce possible ?

merci par avance
Afficher la suite 

3 réponses

Meilleure réponse
approuvée par Jean-François Pillou le 5 déc. 2018
Messages postés
10237
Date d'inscription
mercredi 16 janvier 2013
Dernière intervention
16 février 2019
1311
7
Merci
Bonjour Kivanc

Possible avec une formule matricielle (à valider par CTRL+MAJ+Entrée, la formule se met alors automatiquement enter {} )

=INDEX(Plage valeur à retourner;
EQUIV(1;(plage critere 1= critere1 ou adresse de cellule crit 1)
* (plage critere 2 = critere2 ou adresse de cellule crit 2);0))

Cdlmnt
Via

Dire « Merci » 7

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57975 internautes nous ont dit merci ce mois-ci

Messages postés
2148
Date d'inscription
mercredi 11 février 2009
Dernière intervention
8 février 2019
160
1
Merci
Bonjour,

oui, c'est possible utilisant la fonction CONCATENER(). Tu concatènes la référence et le code postal dans ton RECHERCHEV() et tu recrées la même concaténation dans le tableau où tu fais ta recherche.
Messages postés
1747
Date d'inscription
lundi 7 avril 2008
Dernière intervention
28 novembre 2018
350
1
Merci
Bonjour,

C'est possible en utilisant la fonction recherchevma (= recherchev multiples arguments) que j'ai développée (voir code ci-dessous).

RECHERCHEVMA
Cette fonction renvoie la valeur correspondante à une colonne d’une table en fonction des valeurs cherchées.

La syntaxe de cette fonction est :
RECHERCHEVMA (table ; no_index_col; valeur_cherchée _1 ; valeur_cherchée _2 ; … ; valeur_cherchée _n)

• table: Plage de cellules qui contient les données. Vous pouvez utiliser une référence à une plage (par exemple, A2:D8) ou un nom de plage. C’est sur les valeurs des colonnes 1 à n de table respectives à chaque argument de valeur_cherchée, que portent les différentes valeurs cherchées. Ces valeurs peuvent être du texte, des nombres ou des valeurs logiques.

• no_index_col: Numéro de la colonne de l’argument table dont la valeur correspondante doit être renvoyée. Si l’argument no_index_col est égal à 1, la fonction renvoie la valeur de la première colonne de l’argument table ; si l’argument no_index_col est égal à 2, la valeur de la deuxième colonne de l’argument table est renvoyée, et ainsi de suite.

• valeur_cherchée_i: La valeur à chercher dans la colonne i de la table selon la position i de l’argument valeur_cherchée. Le nombre d’arguments pour valeur_cherchée peut varier de 1 à n. Si une des valeurs cherchées n’est pas trouvée dans l’argument table, la fonction RECHERCHEVMA renvoie la valeur d’erreur #N/A.

CODE

Function RECHERCHEVMA(table As Range, indice_colonne As Integer, ParamArray arguments())

RECHERCHEVMA = CVErr(xlErrNA)
i_lig_max = table.Worksheet.UsedRange.Rows.Count
i_arg_max = UBound(arguments)
For i_lig = 1 To i_lig_max
For i_arg = 0 To i_arg_max
If table.Columns(i_arg + 1).Rows(i_lig) <> arguments(i_arg) Then Exit For
Next
If i_arg > UBound(arguments) Then
RECHERCHEVMA = table.Columns(indice_colonne).Rows(i_lig)
End If
Next

End Function
--