Bonsoir,
je cherche a savoir si une fonction existe pour réaliser un recherche multicritère sur un tableau excel avec vba.
je galère trop, toute idée est bienvenida
Bonsoir,
je cherche a savoir si une fonction existe pour réaliser un recherche multicritère sur un tableau excel avec vba.
je galère trop, toute idée est bienvenida
"Sort" fait cette sorte de chose
Tu ne peux utiliser que trois critères. Ça te va ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Worksheets("Feuil1").Range("A1:C20").Sort _ Key1:=Worksheets("Feuil1").Range("A1"), _ Key2:=Worksheets("Feuil1").Range("B1")
A+
Merci pour l'info,
je vais tester ça et je te tien au courant.
a+
Désolé mais je t'ai dit une bêtise. Mon code effectue un TRI, pas une recherche ? J'ai encore lu trop vite
Pour une recherche multicritères, tu dois effectuer une recherche sur le premier critère, puis vérifier le second, puis vérifier le troisième.
Mais je crois avoir vu passer un code de bbil dans lequel il vérifie l'existence de plusieurs données dans une ligne. Sans garantie aucune. Bref, je n'ai pas le code non plus qu'une idée pour faire ça par une simple ligne de commande?
Je suivrai ton post car un réponse serait intéressante à connaître.
Pour ne pas te laisser sans rien et parce que je culpabilise :
Pas testé, je devrais être parti, ça y est, je suis en retard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub RechercheMulticritères() Dim Critère1, Critère2, Critère3, i As Integer, DernièreLigne As Double Dim ok As Boolean Dim NoColCritère1, NoColCritère2, NoColCritère3 'juste pour l'exemple (tu peux utiliser l'offset Critère1 = "Coucou" Critère2 = " c'est" Critère3 = " moi !" NoColCritère1 = 1 NoColCritère2 = 2 NoColCritère3 = 3 DernièreLigne = 100 ' dernière ligne de ta plage de données (à définir) For Each LaLigne In ActiveSheet.Range(Cells(1, NoColCritère1), Cells(DernièreLigne, NoColCritère1)) i = i + 1 ok = Worksheets("Feuil1").Cells(i, NoColCritère1) = Critère1 ok = ok And Worksheets("Feuil1").Cells(i, NoColCritère2) = Critère2 ok = ok And Worksheets("Feuil1").Cells(i, NoColCritère3) = Critère3 If ok Then 'Tu en fais ce que tu veux, i est le N° de ligne End If ok = False Next End Sub
Bonne journée
De toute façon j'ai aussi besoin du tri sur trois arguments donc merci quand meme.
A+
Le dernier code que je t'ai passé fait une recherche sur 3 critères
A+
Merci j'ai pas pu encore tester car j'ai une erreur avec un multipage mais ça ma l'air pas mal.
Mais peut etre ça le fera pas bien car j'ai plus de 2500lignes
donc le temps que ça compte yen a pour un pti moment je pense en plus c'est pour mettre sur une vieille machine.
J'aurai espéré que cela puisse se faire avec Find mais apparemment ça ne se fait pas.
Merci je le teste des que je resoud l'autre problème
a+
Chuis nul ! Tu as une autre solution (oubliée... ) plus rapide
Mais au lieu de > "=" & TonCritère1 et à la place de <, tu mets "=" & TonCritère2, etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=">" & LaDateInf, _ Operator:=xlAnd, Criteria2:="<" & LaDateSup
Bon, il vaut mieux que je te laisse avec des gens moins pressés que moi
Merci des que je regle mon gros bug de multipage je teste tout ça vraiment merci je te tien au courant tinquiete.
a+
c'est un peu bestial mais ça peut dépanner
=si(and(listedescritères);vrai;faux) dans une colonne puis tri
Elle est pas belle la vie ?
Salut
Merci pour vos réponses je suis débordé cette fin de semaine ya plein de truc qui me son tombé dessus en meme temp cet aprem alors je travaille dessus ce weekend et puis je vous tiens au courant.
Merci encore a tous et bon weekend tout le monde les amis
Salut a tous,
bon je vous raconte pas la galère mais en bref mon projet de gestion de litiges est annulé donc voila je poste résolu car j'ai largement confiance à ceux qui ont écrit le code de cette recherche multicritère et je leur souhaite bonne continuation.
Merci a tous encore
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager