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...>
...
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...>
...