Multicritères

L

laclac

Guest
Jai un tableau est jaimerais faire une recherche par rapport à plusieurs critères : client, secteur d'activité....
Alors on choisit dans les combox le client qu'on veux, le secteur .. et on fait "OK" !

Jai en tout 10 critères autant dire que c'est pas mal !
J'ai fais un code pas du tout optimale mais en VBA, j'ai rien trouvé de mieux, alors jaimerais savoir si il y a un code plus approprié pour faire des multicritères... Merci


Codage sur seulement 5 critères :

' ***Ce code est dans une boucle for qui scanne chaque ligne du tableau
' *** Toute les variables commençant par T sont des variables temporaires
'*** qui correspond à la cellule Client (par exemple) de la ligne séléctionné

If (InStr(UCase(TClient), UCase(CBoxNClient.Text)) > 0) Or (InStr(UCase(CBoxNClient.Text), UCase("<Tous>")) > 0) Then
If (InStr(UCase(TSecteurA), UCase(CBoxSecteurA.Text)) > 0) Or (InStr(UCase(CBoxSecteurA.Text), UCase("<Tous>")) > 0) Then
If (InStr(UCase(TCatArt), UCase(CBoxCatArt.Text)) > 0) Or (InStr(UCase(CBoxCatArt.Text), UCase("<Tous>")) > 0) Then
If (InStr(UCase(TPaysOF), UCase(CBoxPaysOF.Text)) > 0) Or (InStr(UCase(CBoxPaysOF.Text), UCase("<Tous>")) > 0) Then
If (InStr(UCase(TDArt), UCase(CBoxDArt.Text)) > 0) Or (InStr(UCase(CBoxDArt.Text), UCase("<Tous>")) > 0) Then
< Arrivé ici, la ligne répond donc à tout les critères..alors on met par exemple en rouge la ligne...>
...
 
G

Greg76

Guest
le probleme de ton code c que c multicritere mais que tu es obligé de definir le premier critere pour definir le 2eme puis le 3 eme ....
Il faudrait savoir ce que tu veux comme genre de resultat
(une liste ou un tableau)
je suis plus doué en vba access qu en vba excel (meme si c a peu pres la meme chose) mais je pense que si tu passe par une macro et que tu définies les criteres de choix de l utilisateur pas des cases à cocher ainsi tu aura plus de facilité avec le "if casex=true then .... else.... End if" et repeter l opération antant de fois que tu as de critere

Voila si je me suis mal fait comprendre n hesite pas a demandé des precision et si tu peux m aiguiller sur mon probleme ce serait gentil

bonne chance
 
L

laclac

Guest
lol Merci Greg et tu t'es bien fais comprendre !
Ce qui est pas évident car moi meme jai bcp de mal à expliquer mon problème ;)

Donc mon problème est :
J'ai une "liste" de commande dont la 1er ligne c'est les entetes (Nom Client, Secteur, ville, produit...)
J'ai créer un petit form avec plusieurs combobox pour définir les critères.
Par exemple dans le 1er combobox il y a la liste des clients.. En choisissant un client, cela va permettre daffiche toute les commande d'un client particulier..
Si on choisit dans le combobox en plus un produit (dans la liste), on obtient toute les commande sur le produit spécifique que le client à commandé... etc...

Donc il n'est pas possible de faire des cases car le critère dépend pas de valeur vrai/faux mais d'un nom dans une liste.

Egalement je connais bien Access et j'avais du faire aussi un multicriète
voir lien : http://cafeine.developpez.com/access/recherche/
Mais je crois que sur le VBA pour excel cela fonctionne pas.. enfin je crois...
Voilà
 

Discussions similaires

Statistiques des forums

Discussions
312 498
Messages
2 088 996
Membres
104 001
dernier inscrit
dessinbecm