Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche mutliple en VBA²

12 réponses
Avatar
Thierry Euzenot
Bonjour, j'ai dans une feuille de calcul un tableau d'une centaine de lignes
et de 10 colonnes. Ce tableau représente en fait des parties de références.

cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en fonction des différents
critères (radiateur, puissance, thermostat). Existe-t-il une fonction simple
en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des instruction If)
afin de réduire le champ de recherche et de finir par tomber sur la bonne
ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)

10 réponses

1 2
Avatar
Slt
Sans connaitre VBA, moi je me sert de la fonction filtre
automatique dans l'onglet DONNEE
A voir ...


Doswel
-----Message d'origine-----
Bonjour, j'ai dans une feuille de calcul un tableau d'une
centaine de lignes

et de 10 colonnes. Ce tableau représente en fait des
parties de références.


cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en
fonction des différents

critères (radiateur, puissance, thermostat). Existe-t-il
une fonction simple

en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des
instruction If)

afin de réduire le champ de recherche et de finir par
tomber sur la bonne

ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)


.



Avatar
NICO.S
Je n'ai jamais essayé de recherches multicritères, mais peut être que
cela devrait fonctionner :

a = radiateur B
b = 500
c = thermostat gauche

Cells.Find(What:=a And b And c)


Bon courage !

NICO.S


écrivait news:2a2901c4284e$849fecd0
$:

Slt
Sans connaitre VBA, moi je me sert de la fonction filtre
automatique dans l'onglet DONNEE
A voir ...


Doswel
-----Message d'origine-----
Bonjour, j'ai dans une feuille de calcul un tableau d'une
centaine de lignes

et de 10 colonnes. Ce tableau représente en fait des
parties de références.


cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en
fonction des différents

critères (radiateur, puissance, thermostat). Existe-t-il
une fonction simple

en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des
instruction If)

afin de réduire le champ de recherche et de finir par
tomber sur la bonne

ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)


.






Avatar
Asterix
bonjour,

on peut certainement résoudre le problème avec
données / filtre / filtre éléboré
ou
avec la fonction BDLIRE
(dans tous les cas, il faut définir une zone de critères contenant les infos
recherchées dans la bdd)

bon courage

Astérix
Avatar
Thierry Euzenot
Ben en fait j'avais déjà essayé et ça ne fonctionne pas :-(

Bon mon bidouillage fonctionne (je trie les colonnes et ensuite je fais des
tests descendants jusqu'au résultat final) mais la manière n'est pas très
belle.

Merci pour vos réponses

"NICO.S" a écrit dans le message de
news:
Je n'ai jamais essayé de recherches multicritères, mais peut être que
cela devrait fonctionner :

a = radiateur B
b = 500
c = thermostat gauche

Cells.Find(What:=a And b And c)


Bon courage !

NICO.S


écrivait news:2a2901c4284e$849fecd0
$:

Slt
Sans connaitre VBA, moi je me sert de la fonction filtre
automatique dans l'onglet DONNEE
A voir ...


Doswel
-----Message d'origine-----
Bonjour, j'ai dans une feuille de calcul un tableau d'une
centaine de lignes

et de 10 colonnes. Ce tableau représente en fait des
parties de références.


cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en
fonction des différents

critères (radiateur, puissance, thermostat). Existe-t-il
une fonction simple

en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des
instruction If)

afin de réduire le champ de recherche et de finir par
tomber sur la bonne

ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)


.










Avatar
AV
As-tu essayé le filtre élaboré ?

AV
Avatar
Paul V.
Bonjour,

J'ai une petite suggestion qui pourrait faire avancer ton problème ;-)
Mais ma solution nécessite que tu ajoutes une colonne à ton tableau.
Je reprend ton exemple dans une feuille en A4:C9
J'ajoute en d4:d9 la formule :
=ligne()
qui me donne le numéro de chaque ligne.

Dans ta procédure, tu peux alors utiliser une instruction inspirée de
l'instruction suivante :
MsgBox [Sumproduct((A4:A9="radiateur B ")*(B4:B9P0)*(C4:C9=" thermostat
gauche ")*(D4:D9))]
qui te donne le numéro de ligne pour les trois critères choisis càd
radiateur b, 500 et thermostat gauche..

A toi de remplacer par des variables ou tout autre moyen pour lire tes
critères ce qui te permettras d'avoir autan de critères que tu veux.


--
HTH

Paul V.

Thierry Euzenot wrote:
Ben en fait j'avais déjà essayé et ça ne fonctionne pas :-(

Bon mon bidouillage fonctionne (je trie les colonnes et ensuite je
fais des tests descendants jusqu'au résultat final) mais la manière
n'est pas très belle.

Merci pour vos réponses

"NICO.S" a écrit dans le message de
news:
Je n'ai jamais essayé de recherches multicritères, mais peut être que
cela devrait fonctionner :

a = radiateur B
b = 500
c = thermostat gauche

Cells.Find(What:=a And b And c)


Bon courage !

NICO.S


écrivait
news:2a2901c4284e$849fecd0 $:

Slt
Sans connaitre VBA, moi je me sert de la fonction filtre
automatique dans l'onglet DONNEE
A voir ...


Doswel
-----Message d'origine-----
Bonjour, j'ai dans une feuille de calcul un tableau d'une
centaine de lignes

et de 10 colonnes. Ce tableau représente en fait des
parties de références.


cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en
fonction des différents

critères (radiateur, puissance, thermostat). Existe-t-il
une fonction simple

en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des
instruction If)

afin de réduire le champ de recherche et de finir par
tomber sur la bonne

ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)


.








Avatar
LeSteph
Bonsoir,
Si on s'autorise à ajouter une colonne
il semble possible d'y mettre la formule
¢&b2&c2
cela ne fait plus qu'un critèreet à moins de références multiples
cela devrait marcher.
Steph
"Asterix" a écrit dans le message de
news:ON$
bonjour,

on peut certainement résoudre le problème avec
données / filtre / filtre éléboré
ou
avec la fonction BDLIRE
(dans tous les cas, il faut définir une zone de critères contenant les
infos

recherchées dans la bdd)

bon courage

Astérix




Avatar
Thierry Euzenot
Filtre élaboré en VBA ?

"AV" a écrit dans le message de
news:
As-tu essayé le filtre élaboré ?

AV




Avatar
Thierry Euzenot
Oui je pense que cela doit fonctionner :o)

En fait ça marche aussi avec SOMMEPROD et quelques bidouillages

Merci ^^

"Paul V." a écrit dans le message de
news:
Bonjour,

J'ai une petite suggestion qui pourrait faire avancer ton problème ;-)
Mais ma solution nécessite que tu ajoutes une colonne à ton tableau.
Je reprend ton exemple dans une feuille en A4:C9
J'ajoute en d4:d9 la formule :
=ligne()
qui me donne le numéro de chaque ligne.

Dans ta procédure, tu peux alors utiliser une instruction inspirée de
l'instruction suivante :
MsgBox [Sumproduct((A4:A9="radiateur B ")*(B4:B9P0)*(C4:C9=" thermostat
gauche ")*(D4:D9))]
qui te donne le numéro de ligne pour les trois critères choisis càd
radiateur b, 500 et thermostat gauche..

A toi de remplacer par des variables ou tout autre moyen pour lire tes
critères ce qui te permettras d'avoir autan de critères que tu veux.


--
HTH

Paul V.

Thierry Euzenot wrote:
Ben en fait j'avais déjà essayé et ça ne fonctionne pas :-(

Bon mon bidouillage fonctionne (je trie les colonnes et ensuite je
fais des tests descendants jusqu'au résultat final) mais la manière
n'est pas très belle.

Merci pour vos réponses

"NICO.S" a écrit dans le message de
news:
Je n'ai jamais essayé de recherches multicritères, mais peut être que
cela devrait fonctionner :

a = radiateur B
b = 500
c = thermostat gauche

Cells.Find(What:=a And b And c)


Bon courage !

NICO.S


écrivait
news:2a2901c4284e$849fecd0 $:

Slt
Sans connaitre VBA, moi je me sert de la fonction filtre
automatique dans l'onglet DONNEE
A voir ...


Doswel
-----Message d'origine-----
Bonjour, j'ai dans une feuille de calcul un tableau d'une
centaine de lignes

et de 10 colonnes. Ce tableau représente en fait des
parties de références.


cela donne à peu près ça :

radiateur B | 500 | thermostat gauche |
radiateur B | 500 | thermostat droit |
radiateur B | 1000| thermostat gauche |
radiateur C | 500 | thermostat gauche |
radiateur C | 500 | thermostat droit |
radiateur B | 1500| thermostat gauche |
etc.

Je cherche à retrouver un numéro de ligne unique en
fonction des différents

critères (radiateur, puissance, thermostat). Existe-t-il
une fonction simple

en vba pour faire une recherche à critères multiples ?

Pour l'instant je fais une série de tests (utilisant des
instruction If)

afin de réduire le champ de recherche et de finir par
tomber sur la bonne

ligne, mais je pense qu'il y a beaucoup plus simple.

Si quelqu'un à une solution :o)


.












Avatar
Thierry Euzenot
Pas con du tout ^^

lol

"LeSteph" a écrit dans le message de
news:40882d3c$0$15689$
Bonsoir,
Si on s'autorise à ajouter une colonne
il semble possible d'y mettre la formule
¢&b2&c2
cela ne fait plus qu'un critèreet à moins de références multiples
cela devrait marcher.
Steph
"Asterix" a écrit dans le message de
news:ON$
bonjour,

on peut certainement résoudre le problème avec
données / filtre / filtre éléboré
ou
avec la fonction BDLIRE
(dans tous les cas, il faut définir une zone de critères contenant les
infos

recherchées dans la bdd)

bon courage

Astérix








1 2