Filtre avancé avec des zones de critère séparées ?

Bonjour à tous.

Je souhaiterai mettre en place un classeur excel avec une recherche multicritère sous la forme d'un filtre avancé. Je suis parvenu à un bon résultat lorsque mes zones de critères sont alignés et côte-à-côte. Ainsi, je sélectionne toute la zone correspondant à ma zone de critère dans mon filtre avancé, puis j'obtiens les résultats voulu.

Seulement, ce procédé est-il possible pour des zones de critère séparées ? C'est à dire, si je rentre une valeur en B4 B6 et B8, que dois-je rentrer comme zone de valeur dans mon filtre avancé ?

J'aimerai a terme mettre un bouton qui effectuerai le lancement de mon filtre avancé, et ainsi créer une sorte de classeur de recherche multicritère.

Je joins un fichier dans lequel est récapitulé ma demande.

Merci beaucoup pour votre aide !

Thibaut

Bonsoir

Regarde si ça te convient (active les macros)

Amicalement

Nad

Bonsoir à tous, salut Nad,

Possible mais pas pratique !

si tu n'entre pas les 3 critères exacts, rien ne s'affiche

Sub Filtre()
Dim Lg&
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    Range("k2") = "=AND(L2=$b$5,n2=$b$7,p2=$b$9)" 'critères
    Range("L1:p" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("k1:k2"), CopyToRange:=Range("e1:i1"), Unique:=False
End Sub

Amicalement

Claude

bonsoir ;Nad;Dubois

meme chose sans vba

41thibo41.zip (19.18 Ko)

avec sommeprod et des plages dynamiques nomées

cordialement

Merci à tous les deux pour votre réponse !

A priori, la solution de Claude correspond plus à ce que je recherche, à ceci prés qu'il faut absolument rentrer les 3 critères pour que la recherche s'effectue. Or, j'ai peut être oublié de le préciser, j'aimerai que la recherche s'effectue lorsqu'au moins une des 3 zones de critère est remplie. Ainsi, je pourrai avoir tous les codes "A" "B" etc. ou toutes les années "2012", ou tous les codes "A" pour "2012" etc.

Est-ce possible avec la même base de formule que la macro précédente ?

Merci beaucoup, pour votre aide et vore temps.

Thibaut

Re

As-tu ouvert mon fichier ?

Nad

Oui, sauf que lorsque je rentre un critère, j'ai une erreur d'exécution "1004" qui me demande d'ouvrir le débogage. ?

Je viens de le reprendre depuis le forum et je n'ai pas de message d'erreur.

Si quelqu'un d'autre veut bien le tester ...

Nad

Essaye celui-ci

Je ne l'ai pas précisé mais je pense que ça son importance : je travaille sous mac !

La compatibilité est donc peut être pas optimale ? Pourtant, la solution de Claude semble marcher, si ce n'est ce problème de remplissage obligatoire de tous les critères ?

Merci à vous.


Même problème Nad, problème avec l'application "Range" apparemment...

Nouveau fichier à tester :

Bonjour à tous,

Voici le problème que je rencontre lors de l'exécution de la macro dans le dernier fichier envoyé par Nad.

Quelqu'un saurait-il m'aidé à le résoudre ?

Merci beaucoup,

Thibaut

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B5:B9")) Is Nothing Then
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

[TABLO].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
[Criteres], CopyToRange:=[Extraire], Unique:=False
End If

End Sub

Bonjour

Le code que tu postes ne correspond pas au dernier fichier.

Amicalement

Nad

Au temps pour moi !

Je suis resté à la première page...

Merci beaucoup pour votre aide, ça a l'air de fonctionner parfaitement !

Thibaut

Une toute dernière question et ce sera vraiment parfait, c'est promis :

Que dois changer pour que rien n'apparaissent lorsqu'aucun critère n'est remplie ?

Pour l'instant, toutes les données apparaissent lorsqu'il n'y a aucun critère de sélectionné, ce qui engendre des ralentissements trés gênants si la base de donnée est trés grosse !

Encore un grand merci pour votre aide, c'est trés gentil.

Cordialement,

Thibaut

La solution de Nad est excellente, bien joué

Bonsoir

Que dois changer pour que rien n'apparaissent lorsqu'aucun critère n'est remplie ?

Remplace la formule en B11 par celle-ci :

=SI(ET($B$5="";$B$7="";$B$9="");FAUX;ET(OU($B$5="";$B$5=L2);OU($B$7="";$B$7=N2);OU($B$9=0;$B$9=P2)))

Amicalement

Nad

Parfait ! Quel talent...

Merci beaucoup, j'arrête de vous ennuyer.

Bonne continuation,

Thibaut

Rechercher des sujets similaires à "filtre avance zones critere separees"