Recherche mutliple en VBA²

Le
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)
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #1261177
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)


.



NICO.S
Le #1261169
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


$:

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)


.






Asterix
Le #1261162
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
Thierry Euzenot
Le #1261109
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" 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


$:

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)


.










AV
Le #1257634
As-tu essayé le filtre élaboré ?

AV
Paul V.
Le #1257436
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" 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


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)


.








LeSteph
Le #1261074
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" 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




Thierry Euzenot
Le #1268609
Filtre élaboré en VBA ?

"AV" news:
As-tu essayé le filtre élaboré ?

AV




Thierry Euzenot
Le #1268608
Oui je pense que cela doit fonctionner :o)

En fait ça marche aussi avec SOMMEPROD et quelques bidouillages

Merci ^^

"Paul V." 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" 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


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)


.












Thierry Euzenot
Le #1268605
Pas con du tout ^^

lol

"LeSteph" 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" 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








Publicité
Poster une réponse
Anonyme