Filtre automatique selon 3 critères VBA

  • Initiateur de la discussion Initiateur de la discussion adjovi7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

adjovi7

Guest
Bonjour,

J'aurais besoin de votre aide pour savoir comment réaliser une filtre élaborer selon 3 critères vba.
j'ai parcourue le forum a la recherche d'un exemple qui pourrait me permettre de finaliser mon application actuel mais sans succès.Sur mon fichier excel j'aimerais afficher les emplacements S1A/S1B etc quand je clic sur S1 mais dans mon application j'ai les emplacements de S11A et S10A et S1A etc s'affiche.

ci-joint mon fichier pour mieux comprendre ma problématique.

Merci pour votre aide

Cordialement
Adjovi
 

Pièces jointes

Re : Filtre automatique selon 3 critères VBA

Bonjour,

Dans le code du bouton S1:
Code:
Private Sub CommandButton16_Click()
Worksheets(5).Cells(1, 1).AutoFilter Field:=1, Criteria1:="*S1*"
...
on demande d'afficher les lignes dont la première cellule contient S1 (* désignant n'importe quel caractère) quelque soit l'emplacement dans la désignation

pour obtenir les lignes S1A ou S1B:
Code:
Private Sub CommandButton16_Click()
Worksheets("Articles").Cells(1, 1).AutoFilter Field:=1, Criteria1:="S1A", Operator:=xlOr, Criteria2:="S1B"
...

pour obtenir les lignes qui commencent par S1 (quelque soit le nb de caractères après):
Code:
Private Sub CommandButton16_Click()
Worksheets("Articles").Cells(1, 1).AutoFilter Field:=1, Criteria1:="S1*"
...
pour obtenir les lignes qui commencent par S1 (avec un seul caractère après):
Code:
Private Sub CommandButton16_Click()
Worksheets("Articles").Cells(1, 1).AutoFilter Field:=1, Criteria1:="S1?"
...
NB: j'ai modifié Worksheets(5) en Worksheets("Articles") parce que ça fonctionne mieux chez moi

A+
 
Dernière édition:
Re : Filtre automatique selon 3 critères VBA

Bonsoir Adjovi, bonsoir le forum,

Peut-être comme ça :
Code:
Private Sub CommandButton16_Click()
Dim dl As Long
Dim pl As Range

With Worksheets(5)
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
    Set pl = .Range("A2:A" & dl)
    .Cells(1, 1).AutoFilter Field:=1, Criteria1:="*S1*"
    For Each cel In pl.SpecialCells(xlCellTypeVisible)
        If Len(cel.Value) > 3 Then cel.EntireRow.Hidden = True
    Next cel
End With
Sheets("Articles").Select
End Sub

[Édition]
Bonsoir Paf, on s'est croisé et en plus tu donnes une solution bien meilleure que la mienne...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
40
Affichages
4 K
Réponses
3
Affichages
443
Retour