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

Messages postés
387
Date d'inscription
jeudi 11 septembre 2014
Statut
Membre
Dernière intervention
12 juillet 2018
- - Dernière réponse : thev
Messages postés
1771
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
29 juin 2019
- 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
11211
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 octobre 2019
1459
14
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 » 14

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

CCM 64373 internautes nous ont dit merci ce mois-ci

Messages postés
2509
Date d'inscription
mercredi 11 février 2009
Statut
Membre
Dernière intervention
18 octobre 2019
110
4
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
1771
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
29 juin 2019
364
4
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
--