Filtres multiples après validation

SEP54

XLDnaute Junior
Bonsoir à toute la communauté, et je réédite mes meilleurs vœux de santé et de prospérité à tous.

:mad: Je galère sur un exemple de filtre qui consiste à choisir des 2 groupes par l'intermédiaire de 2 menus

déroulants à défilements et seulement après d'effectuer le filtre sur ces 2 choix (tout cela dans cet ordre).

Je joins un fichier complètement nettoyé et grandement réduit pour que vous puissiez me proposer les macros

adaptés.

Les explications sont mentionnées dans fichier. ;)

Merci d'avance à la personne qui saura me dépanner. :)

SEP54
 

Pièces jointes

  • filtre-multiple.xlsm
    27.4 KB · Affichages: 74
  • filtre-multiple.xlsm
    27.4 KB · Affichages: 73
  • filtre-multiple.xlsm
    27.4 KB · Affichages: 77

SEP54

XLDnaute Junior
Re : Filtres multiples après validation

Bonjour et merci de t'intéresser à ma problèmatique !

Voici un exemple que j'utilise en macro sur un menu déroulant:

Sub SEP EXEMPLE()
If [Nom_prenom] = 1 Then
ActiveSheet.Range("$A$2:$C$26").AutoFilter Field:=9, Criteria1:=Array("0", "1"), Operator:=xlFilterValues
Exit Sub
End If
If [Nom_prenom] = 2 Then
ActiveSheet.Range("$A$2:$C$26").AutoFilter Field:=9, Criteria1:=Array("1", "2"), Operator:=xlFilterValues
Exit Sub
End If
End Sub

Ce que je fais d'habitude c'est de filtrer avec le premier menu déroulant grâce à une macro ressemblant à cet exemple puis faire de même avec le second.(Les filtres multiples se font les un derrière les autres et tout se passe bien)

Malheureusement, ce fichier que j'ai fait étant utilisé par beaucoup de personne dans une entreprise n'est pas idéal sur ce point avec cette technique car les personnes préféreraient filtrer après avoir fait un choix, pas en se retapant les 2 filtres à chaque fois de gauche à droite.

Je ne connais pas bien l'utilisation de variable mais je suppose que la solution serait de retenir le choix des menus déroulants dans le fichier par variable puis avec le bouton filtrer d'enclencher ces filtres.

Enfin je tiens à préciser que nous utilisons cette technique de menu déroulant car nous avons beaucoup de chose à filtrer en même temps par colonne et que ceci est répétitif, de plus nous aimons voir à l'ouverture ce qui est filtré.

Dans l'attente de vos nouvelles!

Cordialement,

SEP54
 

kingfadhel

XLDnaute Impliqué
Re : Filtres multiples après validation

Re,

voila ton fichier en retour.

si j'ai bien compris ta demande.
 

Pièces jointes

  • filtre-multiple.xlsm
    46.9 KB · Affichages: 67
  • filtre-multiple.xlsm
    46.9 KB · Affichages: 67
  • filtre-multiple.xlsm
    46.9 KB · Affichages: 64

SEP54

XLDnaute Junior
Re : Filtres multiples après validation

Re-salut kingfadhel,

C'est pas mal du tout, le seul souci et le suivant: si je viens à mettre disons 40 valeurs en [nom_prenom] et 10 en [vue_filtre], la méthode me parait lourd.

Dans mon exemple je n'ai pris que 2 colonnes en considération mais quand serait il avec quelque chose plus élaboré.

Ne pourrait t'on pas envisager quelque chose de ce style:

on déclare les groupes en tant que variable: exemple imagé groupe 1= 1 et 2 , groupe 2= 0 et 2 etc... même chose pour l'autre menu

Puis récupérer ces groupes pour filtrer cela serait moins long à écrire dans VBA

Dans l'attente de te lire, merci beaucoup déjà de ton intérêt.

SEP54
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Filtres multiples après validation

Bonjour SEP54, kingfadhel,

Un autre essai qui devrait un peu plus répondre aux dernières attentes de SEP54. Je suis parti du fichier de kingfadhel :).
Pour aller plus loin (nombre de critères variables), il faudrait sans doute structurer un peu plus la feuille Feuil2. En même temps, on ne passe pas son temps à ajouter ou retirer des critères :confused:

le code dans module1:
VB:
Sub Filtrage()
Dim xrg As Range, t1(1 To 2), t2(1 To 2), s$

  'Adapter le range xrg au contexte
  Set xrg = ActiveSheet.Range("$A$3:$L$500")
  
  'Premier critère
  s = [nomprenom].Offset([nomprenom].Value + 1)
  If s = [AucunFiltre] Then
    t1(1) = Empty
    t1(2) = Empty
    xrg.AutoFilter Field:=9
  Else
    t1(1) = CStr(Val(Mid(s, InStr(s, "(") + 1)))
    t1(2) = CStr(Val(Mid(s, InStr(s, "et") + 2)))
    xrg.AutoFilter Field:=9, Criteria1:=t1, Operator:=xlFilterValues
  End If
  
  'Deuxième critère
  s = [vuefiltre].Offset([vuefiltre].Value + 1)
  If s = [AucunFiltre] Then
    t1(1) = Empty
    t1(2) = Empty
    xrg.AutoFilter Field:=11
  Else
    t2(1) = Trim(Mid(s, InStr(s, "(") + 1))
    t2(1) = Trim(Left(t2(1), InStr(t2(1), "et") - 1))
    t2(2) = Trim(Mid(s, InStr(s, "et") + 2))
    t2(2) = Trim(Left(t2(2), Len(t2(2)) - 1))
    xrg.AutoFilter Field:=11, Criteria1:=t2, Operator:=xlFilterValues
  End If
End Sub

Errata: version v2 - j'avais oublié d'affecter les bonnes définitions aux deux listes déroulantes pour qu'elles s'adaptent automatiquement au nombre de critères présents en feuille Feuil2.
 

Pièces jointes

  • filtre-multiple v2.xlsm
    35.9 KB · Affichages: 60
Dernière édition:

SEP54

XLDnaute Junior
Re : Filtres multiples après validation

Bonjour Mr mapomme,

Mes respects, de nouveau tu es un maitre pour moi.

On y est presque, j'explique: je ne souhaite pas que l'on voit les paramètres des filtres (qui sont souvent plus que 2 paramètres par colonne d'ailleurs, on est plus sur 4 ou 5) mais juste que les personnes voient un titre au filtre.

Par contre le fait de pouvoir mettre mon désidérata dans des cellules est très plaisantes. La séparation n'est peut être ; au lieu du "et" si cela peut simplifier le formule.

Pourrais-tu me dire si une solution à trois menus déroulant est plus compliqué? ou est-ce logique comme je le pense.

Merci de ton aide très précieuse, car je fais tout cela pour mon boulot et oui je fais parti des fous...qui travail le weekend...

(ci-joint mon fichier avec le désidérata.)

SEP54
 

Pièces jointes

  • filtres-multiples-DESIDERATA.xlsm
    33 KB · Affichages: 47

SEP54

XLDnaute Junior
Re : Filtres multiples après validation

bonjour Sep,Kingfadhel
avec filtre élaboré
code module2

Bonjour Mr Bebere,

Merci de ton aide mais je n'ai pas compris ta modification de fichier basé sur la proposition de Kingfadhel.

La solution de mapomme me plait bcp plus, et une mise à jour suivant mon dernier désidérata me semble mieux.

Dans tous les cas la mise à disposition de vos compétences à tous et dévouement me touchent, merci.

Très cordialement,

SEP54
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Filtres multiples après validation

Bonsoir SEP54, Bebere :),

Un essai dans le fichier joint. J'ai remanié la feuille Feuil2. La définition des noms suit une logique qu'il faudra respecter si on ajoute d'autres critères par la suite.

Bébère n'a pas tort :). Les filtres avancés offrent de vastes possibilités. Mais j'étais parti sur un fichier avec des filtres auto, et, par fainéantise :p, j'ai conservé cette base.

Le code de la v3 est assez concis:
VB:
Sub Filtrage()
Dim xrg As Range, T, numCol, s$, i&, nbrCritVide&
  
  'Adapter le range xrg au contexte
  Set xrg = ActiveSheet.Range("$A$3:$L$500")
    
  For i = 1 To Feuil2.Range("a2").CurrentRegion.Columns.Count / 2
    s = Range("Crit" & i)(Range("index" & i))
    numCol = Range("Colonne_Filtre" & i).Value
    numCol = Range(numCol & 1).Column
    If Len(s) = 0 Then
      xrg.AutoFilter Field:=numCol
    Else
      T = Split(s, ";")
      xrg.AutoFilter Field:=numCol, Criteria1:=T, Operator:=xlFilterValues
    End If
  Next i
End Sub
 

Pièces jointes

  • filtre-multiple v3.xlsm
    36.9 KB · Affichages: 64

SEP54

XLDnaute Junior
Re : Filtres multiples après validation

Que dire Mr MAPOMME,

Je reste toujours impressionné par ton savoir et ton investissement sur ce beau forum ! ;)

Bebere et kingfadhel ne déméritant pas non plus. :)

Laisse moi poser désormais mon casque pour décortiquer ce que tu as fait , mais déjà je peux dire que tout

marche comme d'habitude. :cool:

Je vais appliquer ces merveilles à mon fichier original en l'adaptant et vous tiens informés demain.:p

Je suis content d'être sur un forum de personnes compétentes et motivés.

bonne soirée à vous tous !

très cordialement

SEP54
 

SEP54

XLDnaute Junior
HELP HELP Re : Filtres multiples après validation

Bonjour à tous, ;)

J'ai bien fait une transcription sur mon fichier d'origine. (nommer les cases, copie macro, etc...)

La problématique est la suivante: quand j'ajoute des critères la macro bug même sur le petit fichier qui nous sert de test.

Quel est mon oubli? :mad:

HELP.....:confused:

SEP54
 

Pièces jointes

  • mapomme-pour débug.xlsm
    35.9 KB · Affichages: 59

Statistiques des forums

Discussions
312 459
Messages
2 088 587
Membres
103 885
dernier inscrit
xeps