Code vba pour recherchev avec plusieurs valeurs cherchées
Fermé
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
-
17 mai 2016 à 15:30
thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 - 9 juin 2016 à 11:18
thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 - 9 juin 2016 à 11:18
bonjour.
j'aimerais, pour une fonction recherchev sur excel, utiliser plusieurs valeurs cherchées , mais cela ne fonctionne pas. Il faudrait donc que je puisse coder un programme vba qui puisse me faire la même chose.
Avez-vous des idées pour pouvoir m'aider s'il vous plait?
Merci d'avance
j'aimerais, pour une fonction recherchev sur excel, utiliser plusieurs valeurs cherchées , mais cela ne fonctionne pas. Il faudrait donc que je puisse coder un programme vba qui puisse me faire la même chose.
Avez-vous des idées pour pouvoir m'aider s'il vous plait?
Merci d'avance
A voir également:
- Recherchev avec 2 conditions vba
- Supercopier 2 - Télécharger - Gestion de fichiers
- Whatsapp avec 2 cartes sim - Guide
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Si(recherchev vrai alors) ✓ - Forum Excel
7 réponses
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
17 mai 2016 à 15:41
17 mai 2016 à 15:41
Bonjour,
Regardez ici: http://boisgontierjacques.free.fr/pages_site/recherchev.htm
Regardez ici: http://boisgontierjacques.free.fr/pages_site/recherchev.htm
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
18 mai 2016 à 08:45
18 mai 2016 à 08:45
bonjour
Merci pour la réponse mais j'ai juste les bases en codage vba donc je vais joindre une photo pour que vous compreniez mon problème.
J'ai crée une base de données sur une autre feuille renseignant la longueur la largeur, le diamètre, le type , le prix de vente, ainsi que le matériaux. J'aimerais retrouver automatiquement le prix de vente à partir des autres données, pour que je n'ai pas à le chercher dans l'autre base de données, qui risque de s'agrandir, car cela deviendrait long.
Merci d'avance pour vos réponses.

Merci pour la réponse mais j'ai juste les bases en codage vba donc je vais joindre une photo pour que vous compreniez mon problème.
J'ai crée une base de données sur une autre feuille renseignant la longueur la largeur, le diamètre, le type , le prix de vente, ainsi que le matériaux. J'aimerais retrouver automatiquement le prix de vente à partir des autres données, pour que je n'ai pas à le chercher dans l'autre base de données, qui risque de s'agrandir, car cela deviendrait long.
Merci d'avance pour vos réponses.

tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
19 mai 2016 à 14:02
19 mai 2016 à 14:02
est ce que vous avez une solution pour mon problème? Je suis toujours dessus
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
25 mai 2016 à 08:44
25 mai 2016 à 08:44
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
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
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
>
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
25 mai 2016 à 12:37
25 mai 2016 à 12:37
merci beaucoup pour cette réponse, mais est ce que vous pouvez me donner un exemple svp?
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
>
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
25 mai 2016 à 15:43
25 mai 2016 à 15:43
Bonjour a vous deux,
un exemple avec la fonction de Thev, qu'il vous faudra adapter vu que nous n'avons pas votre fichier
https://www.cjoint.com/c/FEznQ7FVjgf
un exemple avec la fonction de Thev, qu'il vous faudra adapter vu que nous n'avons pas votre fichier
https://www.cjoint.com/c/FEznQ7FVjgf
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
25 mai 2016 à 16:49
25 mai 2016 à 16:49
Bon exemple. Rien à ajouter.
f894009
Messages postés
17241
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 février 2025
1 713
26 mai 2016 à 15:34
26 mai 2016 à 15:34
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
26 mai 2016 à 22:21
26 mai 2016 à 22:21
même en intégrant des listes déroulantes conditionnelles?
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
26 mai 2016 à 23:24
26 mai 2016 à 23:24
Dans la fonction que j'ai développée,
la première valeur est cherchée dans la première colonne de la table,
la seconde valeur est cherchée dans la deuxième colonne de la table, et ainsi de suite ...
Si tu veux donc effectuer une recherche sur type, forme, épaisseur, longueur, largeur, marge, ces champs dans ta base de données doivent être contigus et être placés dans les colonnes de début, c'est à dire 1 à 6.
la première valeur est cherchée dans la première colonne de la table,
la seconde valeur est cherchée dans la deuxième colonne de la table, et ainsi de suite ...
Si tu veux donc effectuer une recherche sur type, forme, épaisseur, longueur, largeur, marge, ces champs dans ta base de données doivent être contigus et être placés dans les colonnes de début, c'est à dire 1 à 6.
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
30 mai 2016 à 11:07
30 mai 2016 à 11:07
j'ai fais la modification comme tu me l'as suggéré. est ce que tu connais un programme vba pour pouvoir faire une recherche verticale et ainsi retrouver le prix en fonction de toutes ces données?
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
30 mai 2016 à 13:01
30 mai 2016 à 13:01
Si tu as modifié ta base comme suggéré, ma fonction VBA devrait répondre à ta demande.
Envoies ta nouvelle version.
Envoies ta nouvelle version.
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
30 mai 2016 à 15:25
30 mai 2016 à 15:25
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
30 mai 2016 à 17:35
30 mai 2016 à 17:35
Les données de recherche ne sont pas dans des colonnes contiguës au niveau de ta base.
matière : colonne A, type: colonne F, épaisseur : colonne F, longueur : colonne M, largeur : colonne P
Il faudrait :
matière : colonne A, type: colonne B, épaisseur : colonne C, longueur : colonne D, largeur : colonne E
matière : colonne A, type: colonne F, épaisseur : colonne F, longueur : colonne M, largeur : colonne P
Il faudrait :
matière : colonne A, type: colonne B, épaisseur : colonne C, longueur : colonne D, largeur : colonne E
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
30 mai 2016 à 20:34
30 mai 2016 à 20:34
j'ai crée une troisième où les données de recherche sont contigues
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
30 mai 2016 à 21:37
30 mai 2016 à 21:37
Oui, les données de recherche sont bien contiguës dans la troisième feuille mais le prix n'y figure pas
ci-joint ton fichier plus léger avec la fonction intégrée
https://www.cjoint.com/c/FEEtKnH5MzO
ci-joint ton fichier plus léger avec la fonction intégrée
https://www.cjoint.com/c/FEEtKnH5MzO
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
3 juin 2016 à 09:27
3 juin 2016 à 09:27
https://www.cjoint.com/c/FFdhzXsnq6g
voici donc le nouveau fichier mis à jour.
les données contigues avec le prix sont dans la dernière colonne.
merci d'avance
voici donc le nouveau fichier mis à jour.
les données contigues avec le prix sont dans la dernière colonne.
merci d'avance
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
3 juin 2016 à 14:15
3 juin 2016 à 14:15
ci-joint fichier adapté :
1-ajout de ma fonction : recherchevma
2- ajout d'une fonction "vide" pour la formule en G6 de la Feuil2
3- recadrage de la Feuil3
https://www.cjoint.com/c/FFdmj7A6zFb
1-ajout de ma fonction : recherchevma
2- ajout d'une fonction "vide" pour la formule en G6 de la Feuil2
3- recadrage de la Feuil3
https://www.cjoint.com/c/FFdmj7A6zFb
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
6 juin 2016 à 10:40
6 juin 2016 à 10:40
merci pour cette fonction. mais est ce qui serait possible de faire des listes déroulantes en fonction des listes précédentes je m'explique avec un exemple
Pour l'alu, il y a seulement des barres et des tôles. les tôles peuvent avoir une épaisseur allant de 3 à 100, avec la longueur et largeur prédéfinies.
Est ce que il est possible lorsque que l'on prend l'alu dans la première liste, que les autres listes déroulantes ne sélectionnent seulement les dimensions correspondantes, et non toutes les dimensions? Que la sélection des dimensions soit dependante de celle d'avant.
Pour l'alu, il y a seulement des barres et des tôles. les tôles peuvent avoir une épaisseur allant de 3 à 100, avec la longueur et largeur prédéfinies.
Est ce que il est possible lorsque que l'on prend l'alu dans la première liste, que les autres listes déroulantes ne sélectionnent seulement les dimensions correspondantes, et non toutes les dimensions? Que la sélection des dimensions soit dependante de celle d'avant.
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
7 juin 2016 à 16:33
7 juin 2016 à 16:33
Il est certes possible de conditionner une liste déroulante par une autre mais il faudrait être plus précis sur ta demande:
A- de quelle feuille s'agit-il ? Feuil2 ?
B- quelle est la séquence de sélection ?
1- matière, 2-type, 3-forme, 4- épaisseur... ?
C- La sélection du type a-t-elle une influence sur les listes déroulantes en séquence, etc ...
A- de quelle feuille s'agit-il ? Feuil2 ?
B- quelle est la séquence de sélection ?
1- matière, 2-type, 3-forme, 4- épaisseur... ?
C- La sélection du type a-t-elle une influence sur les listes déroulantes en séquence, etc ...
tumankisial
Messages postés
27
Date d'inscription
mardi 17 mai 2016
Statut
Membre
Dernière intervention
10 juin 2016
9 juin 2016 à 09:25
9 juin 2016 à 09:25
A-Il s'agit de la feuille 3
B- séquence de sélection : toutes les données
C-je ne comprends pas la question
...Je sais c'est un peu complexe ce que je demande, dsl :/
B- séquence de sélection : toutes les données
C-je ne comprends pas la question
...Je sais c'est un peu complexe ce que je demande, dsl :/
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
9 juin 2016 à 11:18
9 juin 2016 à 11:18
La feuille 3, c'est celle qui est nommée Feuil1 ?? Dans cette feuille, il n'y aucun menu déroulant, mais uniquement des filtres !
Pour que la demande soit claire, il faut donner un exemple .
Pour que la demande soit claire, il faut donner un exemple .