Microsoft 365 Filtrage simple et multiple avec niveaux à souhait

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

Toujours dans mes filtrages, j'ai continué à chercher quel pourrait être un filtrage "tout" simple permettant de filtrer avec code simple.
A force de recherches et tests un peu partout, je n'ai rien trouvé qui convenait à "l'usine à gaz" que je suis ou rien que je sois capable de coder.
O rage, O désespoir ... mais j'ai pas lâché l'affaire :p

Je suis retourné sur tous les fichiers de filtrages en ma possession et ayant tout épuisé sans résultat ... c'est au dernier fichier avec lequel, en modifiant le code que j'ai pu trouver, ce que je crois être "LA SOLUTION"

Ce fichier est un fichier de notre très excellent et déjà très regretté JB Boisgontier.

En tâtant, mais je comprenais mieux le filtrage, j'ai modifié le code et j'ai fait celui-là :
VB:
Sub FiltreData()
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=1, Criteria1:="m"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=2, Criteria1:="ca"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=8, Criteria1:="3118"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=10, Criteria1:="el"
    [a1].Select
End Sub
Tout simple et sans aucun besoin supplémentaire. ... j'ai même pu le mettre dans un UserForm.

Il me semble que ça peut fonctionner pour tous besoins en adaptant le code et pour tous niveaux.
Je joins ce fichier test qui, je pense pourra certainement simplifier la vie de bien des utilisateurs de filtrages;

J'en profite pour demander l'avis de nos ténors : Qu'en pensez-vous ?
Merci pour vos avis éclairés :)

Et si patricktoulon me dit que c'est une usine à gaz, j'explose lol 😂🤣
Amicalement,
lionel :)
 

Pièces jointes

  • 01 Filtre_boigontier.xlsm
    32 KB · Affichages: 2
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Tout simple et sans aucun besoin supplémentaire. ...
VB:
sub FiltreData()
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=1, Criteria1:="m"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=2, Criteria1:="ca"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=8, Criteria1:="3118"
    Sheets("choix").Range("A5:J10000").AutoFilter Field:=10, Criteria1:="el"
    [a1].Select
End Sub
Euh... c'est quoi la différence avec ce que je t'avais proposé ?
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bjr Marcel, c'est instantané et tellement plus facile à coder ... lol enfin il me semble :)
Oui, sauf que ça me semble être exactement la même chose en fait.

A ceci près que dans ma proposition, il y avait évidemment , Operator:=xlAnd en trop puisqu'il n'y avait pas de deuxième critère de filtrage sur le premier champ filtré.

Pour rappel :
Moi-même à dit:
MaZone.AutoFilter Field:=10, Criteria1:=">=1", Operator:=xlAnd
MaZone.AutoFilter Field:=11, Criteria1:="="
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Lionel, le Fil, le Forum
Histoire de vous saluer !
Pourquoi pas ceci ?
VB:
Sub FiltreData()
Dim DerLgn As Long
    With Sheets("choix")
    DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row
     With .Range("A5:J" & DerLgn)
          .AutoFilter Field:=1, Criteria1:="m"
          .AutoFilter Field:=2, Criteria1:="ca"
          .AutoFilter Field:=8, Criteria1:="3118"
          .AutoFilter Field:=10, Criteria1:="el"
     End With
    End With
    [a1].Select
End Sub
Bonne fin de Journée
Jean marie
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Lionel, le Fil, le Forum
Histoire de vous saluer !
Pourquoi pas ceci ?
VB:
Sub FiltreData()
Dim DerLgn As Long
    With Sheets("choix")
    DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row
     With .Range("A5:J" & DerLgn)
          .AutoFilter Field:=1, Criteria1:="m"
          .AutoFilter Field:=2, Criteria1:="ca"
          .AutoFilter Field:=8, Criteria1:="3118"
          .AutoFilter Field:=10, Criteria1:="el"
     End With
    End With
    [a1].Select
End Sub
Bonne fin de Journée
Jean marie
Bonjour Jean-Marie :)
Merci, c'est encore mieux !
lionel :)
 

Discussions similaires

Statistiques des forums

Discussions
312 143
Messages
2 085 757
Membres
102 964
dernier inscrit
Juliopapadopulos