Filtre ligne multi criteres

Bonjour

Je ne suis pas un as des macros, et je cherche a créer une macro automatique pour filtre des lignes, a partir de la 21, en fonction de plusieurs critères

Il y aurait :

- un filtre en M10 qui prend filtrerait les lignes contentant des numéros de J23 à DM183

- 6 filtres de O10 à T10 qui filtrerait la colonne E

capture d ecran 2023 12 09 131602

Pourriez vous m'aider svp ?

bonjour MIKE85,

cela est difficile sans fichier représentatif.

10classeur1.xlsx (133.30 Ko)

Bonjour

Je vous joint le fichier exemple vous me direz si vous pouvez m'aider.

Bonne journée

re,

un essai avec une colonne auxiliaire

13classeur1-75.xlsb (120.48 Ko)

Bonjour

C'est quoi la colonne auxiliaire ?

Ca a l'air de fonctionner, merci,

Je vais faire des tests dans la journée, et je vous redirais, si j'ai d'autres soucis,

Rebonjour,

Ca ne fonctionne pas avec le filtre code (Le code correspond au numéro de 1 a 30 qui sont dans les semaines) ?

Est que vous pourriez m'aider svp ?

Je n'ai pas trouvé de macro, vous avez fait comment ?

7classeur1-75-1.xlsb (111.88 Ko)

re,

si vous changez une de 6 filtres, cela provoque un "évent" et la macro "Worksheet_Change" dans le module de la feuille "xxx" est lancée.

10classeur1-75.xlsb (119.19 Ko)
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim dLigne, c1 As Range
     If Intersect(Target, Me.Range("O10:T10")) Is Nothing Then Exit Sub     'vous n'avez pas modifié un de ces 6 filtres = stop

     With Me
          .Range("E22:E1000").Name = "Col_E"     'vos données se trouvent devant la ligne 1000 (et à partir de 22)
          dLigne = [max(if(col_e<>"",row(col_e),22))]     'dernière ligne de la colonne E non-vide
          Set c = Range("A21:DQ" & dLigne)   'la plage à filtrer, a partir de colonne A jusqu'à la colonne auxiliaire colonne DQ = colonne 121

          On Error Resume Next
          Set c1 = .AutoFilter.Range         'quelle est la plage actuelle de l'autofilter
          'Debug.Print c.Address, c1.Address 'montrer les plages dans l'écran direct
          If c.Address <> c1.Address Then .AutoFilter.Range.AutoFilter     'si début différent ou plus de lignes = reset tout l'autofilter
          On Error GoTo 0

          If WorksheetFunction.CountA(.Range("O10:T10")) = 0 Then c.AutoFilter: Exit Sub     'il n'y a pas de filtres = montrer tout
          c.AutoFilter 121, 1                'filtrer la colonne DQ pour la valeur 1 et montrer les autres flèches
     End With
End Sub

Ca a fonctionner,

C'est top, merci

Rechercher des sujets similaires à "filtre ligne multi criteres"